我在python2.7中遇到以下问题。我想要一个这样的模板字典:
my_dict = {
'key_1' : %(key_1)s,
'key_2' : %(key_2)s,
}
我希望像这样使用它:
new_dict = my_dict % {'key_1': 'something', 'key_2': 'anything'}
但这引起了例外:
TypeError: unsupported operand type(s) for %: 'dict' and 'dict'
我的问题有两点:
我对2的意思是:
my_dict = {
'key_1' : %s or None, # if no value is interpolated at key 'key_1'
}
答案 0 :(得分:1)
template = {
'key_1' : '%(key_1)s',
'key_2' : '%(key_2)s',
}
values_dict = {'key_1': 'something', 'key_2': 'anything'}
然后使用所有格式制作新的dict
:
new_dict = dict((key, template[key] % values_dict) for key, value in template.items())
或者,如果您确定更新原始dict
:
for key, value in template.items():
template[key] %= values_dict