我有这本字典,我想在其中检索'id'的值。 最好的方法是什么?
dict = {'total': 2, 'page': 0, 'pageSize': 10, 'count': 2, 'results': [{'id': 3, 'domainId': 1}]}
我尝试过:
print (dict['id'])
E KeyError:'id'
如果我打印按键,我只会得到:
['total', 'page', 'pageSize', 'count', 'results']
答案 0 :(得分:1)
首先,不要调用变量dict
,因为这是字典的Python类型的名称,因此您当前正在覆盖该函数。
让我们改名为d
。
d = {
'total': 2,
'page': 0,
'pageSize': 10,
'count': 2,
'results': [
{'id': 3, 'domainId': 1}
]
}
在这里我们可以看到d['results']
是我们要查询的ID。这是一张清单,所以我想问您是总是要第一件事还是所有事情,还是仅仅想要最后一件事。
如果是我,我将首先提取所有ID,然后获取我真正想要的ID。
我们可以通过以下方式获取所有ID作为列表:
[r['id'] for r in d['results'] if 'id' in r]
这意味着如果results
是以下列表,我们将获得以下ID:
d['results'] == [
{'id': 3, 'domainId': 1},
{'id': 4},
{'domainId': 2},
{'giraffe': True}
]
ids = [r['id'] for r in d['results'] if 'id' in r]
ids == [3, 4]
这时我们可以处理所有id,也可以只获取第一个(ids[0]
)或最后一个(ids[-1]
)。
如果您确切知道它将位于results
中的索引,则可以直接访问该索引。
d['results'][-1]['id']
答案 1 :(得分:0)
id_value = dict['results'][0]['id']
此外,通常不应该在Python中将字典称为dict
。 dict
是内置函数的名称,您可能会通过覆盖它来弄乱事情。
答案 2 :(得分:0)
dict['results'][0]['id']
获得该值。将嵌套字典放在列表中会使事情有些混乱。
答案 3 :(得分:0)
'results'
的值是一个列表,其第一项是另一本词典。您可以使用索引0访问嵌套字典。
print(dict['results'][0]['id'])
答案 4 :(得分:0)
value = dict['results'][0]['id']
您可以使用dict['results']
来访问列表,在该列表中,第一个元素[0]
是一个字典,您最终可以在其中获得[id]
的值。