Coinmarketcap数据嵌套字典

时间:2019-07-17 20:56:57

标签: python json dictionary

嗨,我仍处于学习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”}}}}

2 个答案:

答案 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'不适用。