在字典python中循环

时间:2017-09-14 01:05:58

标签: python list dictionary

我刚刚开始学习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' }

我不确定我缺少什么,有人可以帮我学习如何建立我的字典吗?

2 个答案:

答案 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 documentation3.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'}