如何在Python中循环**kwargs?

如何在Python中循环**kwargs?,python,keyword-argument,Python,Keyword Argument,在下面的代码中,我想阅读obj.subject并将其放入varsubject,还要阅读obj.body并将其放入body。首先,我想读取kwargs变量并在字符串中搜索要替换的关键字,如果不存在关键字,则继续 如何在Python中迭代kwargs for key in kwargs: subject = str(obj.subject).replace('[%s]' % upper(key), kwargs[key]) for key in kwargs: body = str

在下面的代码中,我想阅读
obj.subject
并将其放入var
subject,
还要阅读
obj.body
并将其放入
body
。首先,我想读取
kwargs
变量并在字符串中搜索要替换的关键字,如果不存在关键字,则继续

如何在Python中迭代
kwargs

for key in kwargs:
    subject = str(obj.subject).replace('[%s]' % upper(key), kwargs[key])

for key in kwargs:
    body = str(obj.body).replace('[%s]' % upper(key), kwargs[key])

return (subject, body, obj.is_html)

对于Python 3用户:

您可以使用
.items()

对于Python 2用户:

您可以使用
.iteritems()
kwargs
中进行迭代:


对于那些升级到Python3的人来说,这只是一个简短的提示

在Python 3中,它几乎是相同的:

subject = obj.subject
body = obj.body
for key, value in kwargs.items():
    subject = subject.replace('[{0}]'.format(key.toupper()), value)
    body = body.replace('[{0}]'.format(key.toupper()), value)

return (subject, body, obj.is_html)

请注意,
iteritems()
变为
items()
,因为
dict
不再具有方法
iteritems

您可以在字典上进行iter,默认情况下,它在其键上提供迭代

subject = obj.subject
body = obj.body
    
for key in kwargs:
    subject = str(subject).replace([%s] % upper(key), kwargs[key])
    body = str(body).replace([%s] % upper(key), kwargs[key])

print(subject, body)
我在Python3和Python2解释器上测试了它,它对我来说完全正常,所以对你来说也正常。所有结构都有一个默认值,无论是列表、字典还是元组,您都可以用python语言轻松地对其进行编译。

附上一张照片,说明我们可以轻松做到这一点

能否显示示例输入(
obj.subject
obj.body
以及
kwargs
)和所需输出?如果没有这些,很难说出你在问什么。我们不允许堆栈溢出上的文本图像(代码/输入/输出/错误或其他)。请以()文本形式发布您的答案。要了解原因,请访问该网站。虽然它侧重于提问的角度,但它也适用于答案。
subject = obj.subject
body = obj.body
for key, value in kwargs.items():
    subject = subject.replace('[{0}]'.format(key.toupper()), value)
    body = body.replace('[{0}]'.format(key.toupper()), value)

return (subject, body, obj.is_html)
subject = obj.subject
body = obj.body
    
for key in kwargs:
    subject = str(subject).replace([%s] % upper(key), kwargs[key])
    body = str(body).replace([%s] % upper(key), kwargs[key])

print(subject, body)