Python无法从字典列表中生成字典
由于django formset错误,我有一个字典列表:Python无法从字典列表中生成字典,python,django,Python,Django,由于django formset错误,我有一个字典列表: [{}, {"field": ["This field is required."]}, {"field": ["This field is required."]}] 我想制作一个字典,其中键是字典索引+字段名称,值是错误消息: err = formset.errors for dict in err: for error in dict: results[str(err.index(dict))+'-'+er
[{}, {"field": ["This field is required."]}, {"field": ["This field is required."]}]
我想制作一个字典,其中键是字典索引+字段名称,值是错误消息:
err = formset.errors
for dict in err:
for error in dict:
results[str(err.index(dict))+'-'+error] = dict[error]
问题是我从err中只得到一个值,而不是全部。我怎样才能解决这个问题?谢谢你很接近。首先,我将使用enumerate,因为这就是它的目的。并使用iteritems(python 2.7)在dict上迭代:
for idx, _dict in enumerate(err):
for error_key, error_value in _dict.iteritems():
results[str(idx)+'-' + error_key] = error_value
print results
我得到:
{'1-field':['This field is required'.],'2-field':['This field is required'.]}
*正如评论中提到的,不要使用dict,因为它在python上保留了word
err = formset.errors
D = {}
for i in len(err):
crr_field = err[i].keys()[0]
error_msg = "{field} error: {error}".format(field=crr_field,error=err[i][crr_field])
D[i] = error_msg
D将是{1:“字段1错误:字段是必需的”,2:…}
试试这个
results = {}
err = formset.errors
for i, my_dict in enumerate(err):
for key, value in my_dict.items():
results[str(i)+'-'+key] = value
items()
在python3中起作用,因为iteritems()
已被删除。请注意,不要使用dict
作为变量名。您所说的索引+字段名
是什么意思?应该是1字段
?请显示所需的输出以及您将获得的内容。