繁体   English   中英

python 3从json字典中获取特定值

[英]python 3 get specific value from json dictionary

我有一本从 API 调用中得到的字典。 我试图从结果中获取特定值。

names = requests.get("http://some.api")

打印时该调用的结果如下所示

{'mynames': [{'id': 38, 'name': 'Betsy'}, {'id': 93, 'name': 'Pitbull'}, {'id': 84, 'name': 'Liberty'}]}

我已经尝试了下面的代码只是为了以“Pitbull”作为其名称来获取结果

filtered_names = {k:v for (k,v) in names.items() if "Pitbull" in v}

我得到一个错误

AttributeError: 'Response' object has no attribute 'items'

我怎样才能从从 API 调用中提取的数据中获取特定值?

requests.get给出了一个'Response'对象而不是一个dict 只有后者有迭代的items方法。

您可以使用json库来检索常规 Python 字典:

import json
import requests

names = requests.get("http://some.api")
d = json.loads(names.text)

然后请注意,您有一本带有一个键的字典,其中的值是一个字典列表。 因此,您需要访问d['mynames']以通过列表理解来检索范围内的字典。

filtered_names = [el for el in d['mynames'] if 'Pitbull' in el['name']]

# [{'id': 93, 'name': 'Pitbull'}]
import json
names = requests.get('https://api')
Json = json.loads(names)

filtered_names = {k:v for k,v in Json.items() if "Pitbull" in v}

现在我们心中的一个问题必须是这个 json.py 是做什么的? 那么对于这个问题的答案,你可以参考这里输入链接描述

希望这不会抛出AttributeError

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM