从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()
再次解析它。要访问字典属性的值,请输入字典的名称,然后键入括号中的属性。