{"id":21177,"library":"docx-mailmerge","title":"docx-mailmerge","description":"Performs a Mail Merge on docx (Microsoft Office Word) files using Python. Current version: 0.5.0. Low release cadence (last release in 2018).","status":"maintenance","version":"0.5.0","language":"python","source_language":"en","source_url":"https://github.com/Bouke/docx-mailmerge","tags":["docx","mail-merge","word"],"install":[{"cmd":"pip install docx-mailmerge","lang":"bash","label":"pip install"}],"dependencies":[],"imports":[{"note":"Package install name is 'docx-mailmerge', but import uses 'mailmerge'.","wrong":"from docx_mailmerge import MailMerge","symbol":"MailMerge","correct":"from mailmerge import MailMerge"}],"quickstart":{"code":"from mailmerge import MailMerge\n\ndoc = MailMerge('input.docx')\ndoc.merge(field1='value1', field2='value2')\ndoc.write('output.docx')","lang":"python","description":"Open a DOCX template, merge fields, and save output."},"warnings":[{"fix":"Use Python 3.5 or higher.","message":"Python 2 support was dropped in 0.4.0. Version 0.5.0 requires Python 3.5+.","severity":"breaking","affected_versions":"0.4.0 - 0.5.0"},{"fix":"Verify field names in the template by inspecting XML or using MailMerge.get_merge_fields().","message":"Merge field names must match exactly (case-sensitive). Common mistake: using spaces instead of underscores.","severity":"gotcha","affected_versions":"all"},{"fix":"Use a context manager or re-initialize MailMerge for each merge iteration.","message":"The merge() method overwrites the internal document; subsequent merge calls will lose previous merges unless you re-open the template.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Run: from mailmerge import MailMerge","cause":"Incorrect package name used in import; package is 'mailmerge' not 'docx_mailmerge'.","error":"ImportError: No module named 'mailmerge'"},{"fix":"List fields with: doc.get_merge_fields() and use exact names.","cause":"The merge field name provided does not exist in the template or is not extracted correctly.","error":"KeyError: 'field_name'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}