嗨,我仍处于学习python的初级阶段。我正在尝试使用其api系统从Coinmarketcap.com提取数据。我能够使用一个大字典获得输出,但似乎无法弄清楚如何提取特定数据。我只想收到“价格”:和“最新更新”。
我尝试引用.loads并将数据切成列表。我也尝试在字典中建立索引,但是输出中的嵌套字典使我很难理解。我看了很多youtube教程,并用谷歌寻求帮助,但是找不到解决方案。任何帮助将不胜感激!
import requests
import json
url ='https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest'
api_key = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
headers = {'Accepts': 'application/json', 'X-CMC_PRO_API_KEY': api_key}
parameters = {'symbol': 'ADA'}
response = requests.get(url, headers = headers, params = parameters)
data = response.json()
data_str = json.dumps(data, indent = 2)
print(data_str)
这是字典的输出:
{“状态”:{“时间戳”:“ 2019-07-17T20:54:40.829Z”,“错误代码”:0,“错误消息”:空,“已用”:7,7,“贷方数”:1} ,“数据”:{“ ADA”:{“ id”:2010,“名称”:“卡尔达诺”,“符号”:“ ADA”,“子弹”:“卡尔达诺”,“ num_market_pairs”:90,“添加日期” :“ 2017-10-01T00:00:00.000Z”,“标签”:[“可采矿”],“最大供应”:45000000000,“循环供应”:25927070538,“总供应”:31112483745,“平台”:空,“ cmc_rank “:12,” last_updated“:” 2019-07-17T20:54:04.000Z“,” quote“:{” USD“:{”价格“:0.056165857414,” volume_24h“:102375843.427606,” percent_change_1h“:-0.816068, “ percent_change_24h”:5.42849,“ percent_change_7d”:-21.8139,“ market_cap”:1456216147.0000284,“ last_updated”:“ 2019-07-17T20:54:04.000Z”}}}}
答案 0 :(得分:1)
在Python中,您只需执行以下操作即可访问字典的值
value = dict[key]
在您的情况下,您具有嵌套的JSON。您可以通过链接键来访问值。
您的JSON看起来像
{
"status": {
"timestamp": "2019-07-17T20:54:40.829Z",
"error_code": 0,
"error_message": null,
"elapsed": 7,
"credit_count": 1
},
"data": {
"ADA": {
"id": 2010,
"name": "Cardano",
"symbol": "ADA",
"slug": "cardano",
"num_market_pairs": 90,
"date_added": "2017-10-01T00:00:00.000Z",
"tags": ["mineable"],
"max_supply": 45000000000,
"circulating_supply": 25927070538,
"total_supply": 31112483745,
"platform": null,
"cmc_rank": 12,
"last_updated": "2019-07-17T20:54:04.000Z",
"quote": {
"USD": {
"price": 0.056165857414,
"volume_24h": 102375843.427606,
"percent_change_1h": -0.816068,
"percent_change_24h": 5.42849,
"percent_change_7d": -21.8139,
"market_cap": 1456216147.0000284,
"last_updated": "2019-07-17T20:54:04.000Z"
}
}
}
}
}
您可以按以下价格访问价格
price = data['data']['ADA']['quote']['USD']['price']
希望有帮助
答案 1 :(得分:0)
尽管相似,但它不是Python内置的字典。是JSON。您可以按“键”值进行解析。示例:
import json
a = '{"status": {"timestamp": "2019-07-17T20:54:40.829Z", "error_code": 0, "error_message": null, "elapsed": 7}}'
b = json.loads(a)
print(b["status"]["elapsed"])
请注意,一旦您已经使用了请求,就不必导入json模块。 例如:
requests.get(url).json()[0]["your_target"])
分析得到的响应,也许索引'0'不适用。