我從 coinbase 得到這個 api 回應
json_response = {"ask":"19540.18","bid":"19538.23","volume":"46199.99613583","trade_id":420452773,"price":"19539.07","size":"0.00091338","time":"2022-09-28T16:44:27.381482Z"}
當我嘗試通過使用獲取“詢問”資料時
print(json_response["ask"])
我得到了錯誤
Traceback (most recent call last):
print(json_response["ask"])
TypeError: string indices must be integers
我在 W3schools 上閱讀,這對他們有用。提前致謝
uj5u.com熱心網友回復:
錯誤訊息引導您采用正確的方法:
字串索引必須是整數
即,您正在嘗試索引到字串,而不是您認為的字典。解決此問題的一種方法是首先將回應字串決議為字典:
import json
data = json.loads(json_response)
print(Type(data))
print(Type(json_response))
print(data['ask']) #should get you the expected result
uj5u.com熱心網友回復:
您的 API 回應存盤在串列字典中,而不是純字典本身。
(有關此外觀的示例,請訪問此處: https ://www.geeksforgeeks.org/python-ways-to-create-a-dictionary-of-lists/ )
因此,您收到錯誤的原因是 json_response 只能使用索引訪問。
您需要先將專案串列轉換為字典。一種方法:
json_response = {"ask":"19540.18","bid":"19538.23","volume":"46199.99613583","trade_id":420452773,"price":"19539.07","size":"0.00091338","time":"2022-09-28T16:44:27.381482Z"}
json_response_dict = dict()
for key in json_response:
json_response_dict[key] = json_response[key]
然后此代碼將適當地將串列轉換為可用的字典和以下代碼:
print(json_response_dict)
print(json_response_dict["ask"])
將作業和列印:
{'ask': '19540.18', 'bid': '19538.23', 'volume': '46199.99613583', 'trade_id': 420452773, 'price': '19539.07', 'size': '0.00091338', 'time': '2022-09-28T16:44:27.381482Z'}
19540.18
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/510067.html
標籤:Pythonjson字典
