首页 > 解决方案 > 使用python从数组内非命名嵌套字典中的键获取值

问题描述

我正在尝试使用 python 从数组中的嵌套字典中检索一个值,但我收到一个我不明白的错误。这是数组:

[
    {
        "Date": "11-02-2021",
        "Open": 0.07284431,
        "High": 0.0743014,
        "Low": 0.06829016,
        "Close": 0.06967585,
        "Volume": 3818556738.8,
        "Market Cap": 8941609529.45
    },
    {
        "Date": "10-02-2021",
        "Open": 0.07011055,
        "High": 0.08109109,
        "Low": 0.06852545,
        "Close": 0.07289631,
        "Volume": 6785088422.26,
        "Market Cap": 9353895799.46
    }
]

这就是我试图获得 Close 值的方式:

coin_data = scraper.get_data("json")

today_close_price = coin_data[0]['Close']
yesterday_close_price = coin_data[1]['Close']

我得到的错误是:

TypeError: string indices must be integers

但是,如果没有命名嵌套字典,我就不能使用字符串,我想使用键字符串来获取值。

标签: python

解决方案


我认为您coin_data的类型是 type str,它不是结构,而是内部带有结构的字符串。请print(type(coin_data))在您当前的代码中执行,它可能应该输出str.

这样做可以解决您的问题(使用json.loads()):

import json

coin_data = scraper.get_data("json")

coin_data = json.loads(coin_data)

today_close_price = coin_data[0]['Close']
yesterday_close_price = coin_data[1]['Close']

推荐阅读