访问子词典的键以获取列表中某些键的所有值

时间:2019-02-18 09:46:02

标签: python python-3.x

我正在运行一个get请求,以通过以下方式接收json文件:

my_request = requests.get('example')
dict = my_request.json()
print(dict)

这是结果:

{'1': [{'nb_visits': 1, 'nb_actions': 5,  'idvisitor': 'abc'}, {'nb_visits': 1, 'nb_actions': 16,'idvisitor': 'def'}], 
'2': [{'nb_visits': 1, 'nb_actions': 12,  'idvisitor': 'ghe'}, {'nb_visits': 2, 'nb_actions': 3,'idvisitor': 'xyz'}]}

现在,我正在尝试访问子词典的密钥。例如,我想要一个包含所有访客ID的列表。

谷歌搜索为我提供了访问子词典的语法:

print(dict[1]['idvisitor'])

但这会返回1的键错误

我感兴趣的示例最终结果是列出所有子词典中所有idvisitor的列表。

2 个答案:

答案 0 :(得分:1)

尝试:

print([i['idvisitors'] for i in dict['1']])

输出:

['abc', 'def']

编辑:

print([y['idvisitors'] for x in dict.values() for y in x])

答案 1 :(得分:1)

首先,您必须将其作为词典阅读。现在,键值是列表。您可以从词典列表中获取价值。

> for key,value in dict.items():
>     print(value[1].get('idvisitor'))