對於上下文,我對網絡開發非常陌生。從API獲取數據和解析
是否有從this website獲取數據的更好方法,而不是從您從.read()獲取的字符串中刪除非數字字符,如shown in this solution,然後將這兩個數字分開?
如果python腳本正在調用API並獲取數據,那麼如何自動執行該過程以在一段時間(例如每分鐘)刷新數據?
對於上下文,我對網絡開發非常陌生。從API獲取數據和解析
是否有從this website獲取數據的更好方法,而不是從您從.read()獲取的字符串中刪除非數字字符,如shown in this solution,然後將這兩個數字分開?
如果python腳本正在調用API並獲取數據,那麼如何自動執行該過程以在一段時間(例如每分鐘)刷新數據?
這個數據是JSON格式,你可以使用requests
庫檢索它作爲一個Python字典:
>>> import requests
>>> data = requests.get("https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=BTC,USD,EUR"
).json()
>>> data
{'BTC': 0.1432, 'EUR': 343.04, 'USD': 388.04}
如果要定期運行它有一些不同的選擇;你可以使用cron(或Windows上的taskscheduler),或者你可以使用time.sleep(60)
的循環。
Python有能力將json resposne從api解析成字典結果 https://pythonspot.com/en/json-encoding-and-decoding-with-python/給出了關於使用json的一個很好的教程。要自動運行每分鐘看看What is the best way to repeatedly execute a function every x seconds in Python?。我希望這是有幫助的
該數據是JSON格式,大致相當於Python中的字典。我不是Python專家,但我相信你需要導入json
模塊並用.loads()
解析數據 - 然後你可以作爲字典的屬性來訪問這些值。
因此,例如,您的數據是這樣的:
{"BTC":0.1434,"USD":387.92,"EUR":343.51}
在腳本中,您將導入json
,把數據放到一個變量,並解析它作爲一個字典:
import json
json_string = '{"BTC":0.1434,"USD":387.92,"EUR":343.51}'
parsed_json = json.loads(json_string)
現在,如果你引用parsed_json
,您可以訪問該值:
print parsed_json['BTC']
# 0.1434
print parsed_json['EUR']
# 343.51
等。
編輯 重新閱讀你的問題後,我覺得你想要的是被接受的答案和我的一些組合。這是我認爲你正在尋找(從接受的答案借款):
>>> import requests
>>> data = requests.get("https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=BTC,USD,EUR"
).json()
>>> data['USD']
387.92
>>> data['BTC']
0.1434
通過requests.get()
返回的數據已經被解析,所以沒有必要用json.loads()
再次解析它。要訪問字典屬性的值,請輸入字典的名稱,然後鍵入括號中的屬性。