簡體   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