我刚刚开始学习Django和Python ......已经有2个月了。 我正在做自己的个人项目之一,我有一个部分,我在查询网络服务并将结果传回模板。
webservice正在返回如下字典。
x = {'ID':[{
'key-1': 'First Name',
'key-2': 'John'
},{
'key-1': 'Last Name',
'key-2': 'Doe'
},{
'key-1': 'Age',
'key-2': '25'
}]
我希望在字典中迭代列表并创建我自己的字典,如下所示:
d = {'First Name': 'John', 'Last Name': 'Doe', 'Age': '25' }
我不确定我缺少什么,有人可以帮我学习如何建立我的字典吗?
答案 0 :(得分:1)
尝试使用dict理解并使用key-1 as the key and
key-2`作为值构建一个新词典。
x = {'ID':[{
'key-1': 'First Name',
'key-2': 'John'
},{
'key-1': 'Last Name',
'key-2': 'Doe'
},{
'key-1': 'Age',
'key-2': '25'
}]}
print({el['key-1']: el['key-2'] for el in x['ID']})
结果
{'年龄':' 25','名字':' John','姓氏' :' Doe'}
答案 1 :(得分:0)
警告请注意values
字典方法的排序规则。
订购规则2.x documentation和3.x documentation。
EDIT2:
为了防止字典排序和提供的解决方案出现任何奇怪现象,请将数据打包成OrderedDict:
from collections import OrderedDict
x = {'ID':[OrderedDict({
'key-1': 'First Name',
'key-2': 'John'
}),OrderedDict({
'key-1': 'Last Name',
'key-2': 'Doe'
}),OrderedDict({
'key-1': 'Age',
'key-2': '25'
})]}
对于像这样的事情, dict()
是一个不错的选择:
d = dict(each.values() for each in x['ID'])
输出:
{'Age': '25', 'First Name': 'John', 'Last Name': 'Doe'}