用python解码json字典

2024-09-29 19:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个脚本来从API获取数据并返回它,但现在我需要解析该数据,这是json数据的一个示例,其中包含一些我要提取的字典值。在

{'results': [{'icpsr_id': 21133,
   'twitter_id': 'RepToddYoung',
   'thomas_id': '02019',
   'term_end': '2017-01-03',
   'office': '1007 Longworth House Office Building',
   'gender': 'M',
   'phone': '202-225-5315',

这是我编写的用于拉取和解析json数据文件的代码。谁能告诉我它有什么毛病吗?我仍然从“results”字典返回完整的值,这意味着代码好像什么都没做,我仍然得到完整的字典,它没有被解析,而不是只解析“twitter”和“office”

^{pr2}$

Tags: 数据代码脚本apiidjson示例字典
2条回答

听起来你想要这样的东西:

def call():
    payload = {'apikey':'my_apikey', 'zip':'74120'}
    bas_url = 'http://openstates.org/api/v1//legislators/?state=ok'
    r = requests.get(bas_url, params = payload)
    grab = r.json()
    jsonData = grab["results"]
    return [{key: value for key, value in result.items() if key in ("twitter_id", "office")} for result in jsonData]

好的,看看请求模块的在线文档,我发现调用r.json()将为您进行JSON解析,并返回一个Python dict。您发布的内容是dict的输出,因此JSON部分已经为您处理好了。在

一旦使用json_response = r.json()将数据提取到json_响应后,此代码应该可以在python2和python3中使用:

extracted_values = []
json_data = json_response['results']
for item in json_data:
    subitem_dict = {}
    for key in 'twitter_id office'.split():
        subitem_dict[key] = item.get(key) # will give None if key does not exist
    extracted_values.append(subitem_dict)

print(extracted_values)

印刷品:

^{pr2}$

相关问题 更多 >

    热门问题