我是 Python 新手,但一直在努力學習。
今天我在嘗試從字典中選擇一個鍵時遇到了這個錯誤:
列印(資料['城鎮'])鍵錯誤:'城鎮'
我的代碼:
import requests
defworld = "Pacera"
defcity = 'Svargrond'
requisicao = requests.get(f"https://api.tibiadata.com/v2/houses/{defworld}/{defcity}.json")
data = requisicao.json()
print(data['town'])
json/dict 看起來像這樣:
{
"houses": {
"town": "Venore",
"world": "Antica",
"type": "houses",
"houses": [
{
"houseid": 35006,
"name": "Dagger Alley 1",
"size": 57,
"rent": 2665,
"status": "rented"
}, {
"houseid": 35009,
"name": "Dream Street 1 (Shop)",
"size": 94,
"rent": 4330,
"status": "rented"
},
...
]
},
"information": {
"api_version": 2,
"execution_time": 0.0011,
"last_updated": "2017-12-15 08:00:00",
"timestamp": "2017-12-15 08:00:02"
}
}
問題是,如何列印對?
謝謝
uj5u.com熱心網友回復:
為避免您的第一個錯誤,請執行
print(data["houses"]["town"])
(因為它是{"houses": {"town": ...}},不是{"town": ...})。
例如,列印所有房屋的名稱,請執行
for house in data["houses"]["houses"]:
print(house["name"])
uj5u.com熱心網友回復:
您必須首先town通過訪問houses欄位來訪問物件,因為存在嵌套。
你要print(data['houses']['town'])。
uj5u.com熱心網友回復:
正如回答的那樣,你必須做 data['houses']['town']。一個更好的方法,這樣你就不會引發錯誤,你可以這樣做:
houses = data.get('houses', None)
if houses is not None:
print(houses.get('town', None))
.get是 dict 中的一個方法,它有兩個引數,第一個是鍵,第二個引數是默認值,如果找不到鍵則回傳。所以如果你在你的例子data.get('town', None)中這樣做,這將回傳 None 因為城鎮沒有被發現作為資料中的一個鍵。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/404576.html
標籤:
上一篇:如何在Julia中迭代Dict
