编辑:我必须承认我搞砸了,没有下载所有的例子/测试。我下载了整个包,发现了一些很棒的示例,它们向我展示了如何做我想做的一切。这个特殊的问题在dynamic_table_tpl.py
和dynamic_table.docx
中有展示。
我正在使用python- DOCX -template,并且已经创建了一个DOCX模板。按照文档的建议,我一直在尝试使用jinja2格式化。我需要将一系列地址添加到我的DOCX文件中。这些数据来自一个数据库,我使用python从数据库中提取它。
下面是我在DOCX模板文件中的内容:
{% for kid in kids %}
{kid.first}{kid.last}
{kid.addr1}{kid.addr2}
{kid.city}{kid.state}{kid.zip}
{% endfor %}
这是在我的.py文件中:
kids = [
[
('first','John'),
('last','Williams'),
('addr1','5555 NW 37th St')
('addr2','Apt 2601')
('city','Oklahoma City')
('state','OK')
('zip','73112')
],
[
('first','George'),
('last','Lucas'),
('addr1','1234 Dobbs St.')
('addr2','Suite 62')
('city','Moore')
('state','OK')
('zip','73160')
]
]
context = {
"kids" : kids
}
我已经查看了文档和示例,但还没有找到如何实现这一点。如果我在数据库中有两个孩子,我希望结果如下所示:
John Williams
5555 NW 37th St., Apt 2601
Oklahoma City, OK 73112
George Lucas
1234 Dobbs St., Suite 62
Moore, OK 73160
模板不会替换循环中的任何内容。它在创建的DOCX中写入两个循环,而在模板中,我只编写了一次for kid in kids
循环。它正在以某种方式读取它,但并不完全是我所需要的工作方式。
任何帮助都是非常感谢的!
发布于 2019-08-15 00:11:32
当使用元组(方括号的东西)时,没有数字索引是不可能到达元素的。因此,最好的做法是通过像kid[1]
这样的索引访问它们,或者在访问元组之前将其转换为字典(我认为这是最可靠的)
https://stackoverflow.com/questions/57502521
复制相似问题