2016-02-18 31 views
1

我有字典的列表,Django的表單集錯誤的結果:的Python不能讓字典從字典列表

[{}, {"field": ["This field is required."]}, {"field": ["This field is required."]}] 

我想要一本字典,其中關鍵是字典+ name字段和值的指數錯誤信息:

err = formset.errors 
for dict in err: 
    for error in dict: 
     results[str(err.index(dict))+'-'+error] = dict[error] 

問題是我只從err中獲得一個值,而不是全部。我該如何解決這個問題?謝謝

+2

作爲通知,不要使用'dict'作爲變量名稱。 – Arman

+0

你的意思是「索引+字段名稱」?應該是'1field'? – Arman

+3

請顯示所需的輸出結果,並取而代之。 –

回答

2

你非常接近。首先我會使用枚舉,因爲它意味着要做什麼。並使用iteritems(Python 2.7版)遍歷字典:

​​

和我:

{'1-field': ['This field is required.'], '2-field': ['This field is required.']}

*由於在評論中提到 - 不要使用dict因爲它保存在蟒蛇字。

0
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:"Field field1 error: field is required",2:....}

0

試試這個

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()被刪除。