我正在嘗試使用 json.load 從多個 REST 端點讀取 json - 我感興趣的鍵有不同的情況,具體取決于哪個端點(有些是“名稱”,有些是“名稱”)。我嘗試了以下方法來解決它:
for x in urls:
response_json = json.load(urllib.request.urlopen(x))
try:
projects.append(response_json['attributes']['Name'])
print(response_json['attributes']['Name'])
except:
projects.append(response_json['attributes']['name'])
print(response_json['attributes']['name'])
但是,對于“名稱”鍵的兩種排列,我都得到了 KeyErrors。如果我洗掉 TRY...EXCEPT 并且只指定一種情況,則代碼可以正常作業,但是我需要知道每個 URL 的含義。為什么會這樣?有更好的方法嗎?
uj5u.com熱心網友回復:
您應該只使用 try 和 catch 進行錯誤處理。
您可以使用簡單的 if-else 條件檢查,而不是使用 try 和 catch 來拆分代碼。它將允許您檢查更多條件。請記住,以下可能不是確切的代碼,因為我沒有您的 JSON,但是,這應該會引導您找到此處的解決方案。
if 'Name' in response_json['attributes']:
print(response_json['attributes']['Name'])
elif 'name' in response_json['attributes']:
print(response_json['attributes']['name'])
else:
print(response_json['attributes'].keys())
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/456017.html
下一篇:如何列印字典中的所有內容?
