如何在python中访问嵌套字典

时间:2018-05-24 10:39:00

标签: python python-3.x dictionary

如何在python中访问嵌套字典。我想访问' 类型'卡和卡1。

data = {
'1': {
'type': 'card',
'card[number]': 12345,
},
'2': {
'type': 'wechat',
'name': 'paras'
}}

我只想从字典中输入。我怎样才能得到。 我使用以下代码但收到错误:

>>> for item in data:
...     for i in item['type']: 
...             print(i)
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: string indices must be integers

3 个答案:

答案 0 :(得分:5)

您可以使用:

In [120]: for item in data.values():
     ...:     print(item['type'])

card
wechat

或列表理解:

In [122]: [item['type'] for item in data.values()]
Out[122]: ['card', 'wechat']

答案 1 :(得分:2)

当您迭代字典时,例如for item in data,你正在迭代密钥。您应该使用包含所需信息的视图,例如dict.valuesdict.items

通过迭代访问密钥和相关类型:

for k, v in data.items():
    print(k, v['item'])

或者,要创建列表,请使用列表推导:

lst = [v['item'] for v in data.values()]
print(lst)

答案 2 :(得分:-1)

nested dict

从这样的嵌套python字典中获取,如果我想访问let,例如article_url,那么我必须像这样编程

[item['article_url'] for item in obj.values()]