Python无法从字典列表中生成字典

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

由于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))+'-'+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字段
?请显示所需的输出以及您将获得的内容。