Как циклом добавить запись в документ microsoft word?

Имеется шаблон документа word шаблон.docs:

{{id}} some text {{id}} other words {{id}}

код программы:

list_data=[
 {'id':'1', 'name':'вася', 'password':'123'},
 {'id':'2', 'name':'john', 'password':'321'},
 {'id':'3', 'name':'mike', 'password':'555'}
 ]

for i in list_data:
    doc = DocxTemplate("шаблон.docx")
    context = {'id': i['id']}
  
    doc.render(context)

doc.save(f"{output.docx")

в файле output.docx получаю:

1 some text 1 other words 1

как получить результат в файл output.docx:

1 some text 2 other words 3

Ответы (1 шт):

Автор решения: vanesicks

Вам нужно использовать разные переменные в шаблоне.

{{id1}} some text {{id2}} other words {{id3}}

И в цикле уже построить массив контекста с другими ключами, а рендер вызвать после цикла.

context = {};
doc = DocxTemplate("шаблон.docx")

for i in list_data:
    context['id'+i['id']]=i['id']}
      
doc.render(context)    
→ Ссылка