@Yrets169

Как в цикле n-ное количество записей расписать по файлам?

Как записывать из словаря list_data по три записи в один word файл?

например 1_output.docs первые три записи из list_data имеют,
следующие три в 2_output.docs и так далее

list_data=[
 {'id':'1', 'name':'вася', 'password':'123'},
     {'id':'2', 'name':'john', 'password':'321'},
    {'id':'3', 'name':'mike', 'password':'555'},
{'id':'1', 'name':'еще кто то', 'password':'342'},
    {'id':'2', 'name':'some', 'password':'67332'},
    {'id':'3', 'name':'horse', 'password':'bugaga'}
...................................................
{'id':'1', 'name':'sone n', 'password':'some pass n'},
    {'id':'2', 'name':'some n' , 'password':'some pass n'},
    {'id':'3', 'name':'some n', 'password':'some pass n'}
]
context = {}
doc = DocxTemplate("шаблон.docx")
for i in list_data:
    context['id' + i['id']] = {i['id']}
    context['name' + i['id']] = {i['name']}
    context['password' + i['id']] = {i['password']}
    doc.render(context)
for i in range(n):
    doc.save(f"{i}_output.docx")


данный код выводит только в один файл три записи в n_output.docs
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@PavelMos
Ты три раза перезаписываешь один и тот же объект - doc
Нужно примерно так:
for i in list_data:
    context = {}
    doc = DocxTemplate("шаблон.docx")
    context['id' + i['id']] = {i['id']}
    context['name' + i['id']] = {i['name']}
    context['password' + i['id']] = {i['password']}
    doc.render(context)
    doc.save(f"{i}_output.docx")
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы