首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用docx-mailmerge将python字典作为kwargs合并到文档中?

如何使用docx-mailmerge将python字典作为kwargs合并到文档中?
EN

Stack Overflow用户
提问于 2018-11-01 05:15:34
回答 2查看 1.2K关注 0票数 0

所以我有了这本字典

代码语言:javascript
复制
mydict = {'name': 'Theo', 'age': '39', 'gender': 'male', 'eyecolor': 'brown'}

我使用docx-mailmerge将这些数据合并到一个word文档中。

代码语言:javascript
复制
template = "myworddoc.docx"
newdoc = "mergeddoc.docx"
document = MailMerge(template)
document.merge(mydict)
document.write(newdoc)

但是创建的文档是空的。我猜它只适用于kwargs??

我只能使用合并和kwargs,所以

代码语言:javascript
复制
document.merge(name='Theo', age='39', gender='male', eyecolor='brown')

我真的很喜欢用字典来合并数据。

我是将字典转换为kwarg (以及如何操作),还是使用字典?

谢谢你的帮助!!

EN

回答 2

Stack Overflow用户

发布于 2018-11-01 05:17:55

不知道它的正式名称是什么,但我称它为“分解”运算符。

代码语言:javascript
复制
document.merge(**mydict)

这会将dict解压到函数的/方法的关键字参数中。

示例:

代码语言:javascript
复制
def foo_kwargs(a=1, b=2, c=3):
    print(f'a={a} b={b} c={c}')

my_dict = {'a': 100, 'b': 200, 'c': 300}
foo_kwargs(**my_dict)
# Prints a=100 b=200 c=300

请注意,还有参数explode:

代码语言:javascript
复制
mylist = [1,2,3,4]

def foo_args(a, b, c, d):
    print(a, b, c ,d)

foo_args(*mylist)
# Prints 1 2 3 4
票数 1
EN

Stack Overflow用户

发布于 2020-05-14 15:34:04

在将字典传递给Mailmerge对象时使用merge_pages方法:document.merge_pages([mydict])

代码语言:javascript
复制
# keys = your mergefield names, values = what you want to insert into each mergefield
mydict = {'name': 'Theo', 'age': '39', 'gender': 'male', 'eyecolor': 'brown'}

template = "myworddoc.docx"
newdoc = "mergeddoc.docx"
document = MailMerge(template)

print([i for i in document.get_merge_fields()] # Verify your merge fields exist
document.merge_pages([mydict])
document.write(newdoc)
document.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53092062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档