如何在Python中打印此嵌套字典的日期?

时间:2018-04-14 04:08:11

标签: python-3.x dictionary nested

如何打印/访问"时间序列(每日)"的日期?

我尝试了以下操作,但是我收到了一个关键错误:

for date in range(0,2):
    print(date)
    print(tickerData['Time Series (Daily)'][date]) 

这是嵌套字典:

   {
        "Meta Data": {
            "1. Information": "Daily Prices (open, high, low, close) and Volumes",
            "2. Symbol": "NASDAQ Index",
            "3. Last Refreshed": "2018-04-13",
            "4. Output Size": "Compact",
            "5. Time Zone": "US/Eastern"
        },
        "Time Series (Daily)": {
            "2018-04-13": {
                "1. open": "7179.6201",
                "2. high": "7183.6201",
                "3. low": "7078.1401",
                "4. close": "7106.6499",
                "5. volume": "1743640000"
            },
            "2018-04-12": {
                "1. open": "7112.0200",
                "2. high": "7166.0000",
                "3. low": "7105.0898",
                "4. close": "7140.2500",
                "5. volume": "2021110000"
            }}}

2 个答案:

答案 0 :(得分:2)

tickerData ={
    "Meta Data": {
        "1. Information": "Daily Prices (open, high, low, close) and Volumes",
        "2. Symbol": "NASDAQ Index",
        "3. Last Refreshed": "2018-04-13",
        "4. Output Size": "Compact",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2018-04-13": {
            "1. open": "7179.6201",
            "2. high": "7183.6201",
            "3. low": "7078.1401",
            "4. close": "7106.6499",
            "5. volume": "1743640000"
        },
        "2018-04-12": {
            "1. open": "7112.0200",
            "2. high": "7166.0000",
            "3. low": "7105.0898",
            "4. close": "7140.2500",
            "5. volume": "2021110000"
        }
    }
}

for date in tickerData['Time Series (Daily)'].keys():
    print(date)

答案 1 :(得分:1)

您可以使用以下内容获取字典中的所有日期:

    dates = tickerdata["Time Series (Daily)"]
    for item in dates:
        print (item)

输出:

2018-04-13
2018-04-12

以下评论:

不确定这是否是您想要的,但您可以执行以下操作:

class AttributeDict(dict):
    __getattr__ = dict.__getitem__
    __setattr__ = dict.__setitem__
tickerdata = {
        "Meta Data": {
            "1. Information": "Daily Prices (open, high, low, close) and Volumes",
            "2. Symbol": "NASDAQ Index",
            "3. Last Refreshed": "2018-04-13",
            "4. Output Size": "Compact",
            "5. Time Zone": "US/Eastern"
        },
        "TimeSeriesDaily": {
            "2018-04-13": {
                "1. open": "7179.6201",
                "2. high": "7183.6201",
                "3. low": "7078.1401",
                "4. close": "7106.6499",
                "5. volume": "1743640000"
            },
            "2018-04-12": {
                "1. open": "7112.0200",
                "2. high": "7166.0000",
                "3. low": "7105.0898",
                "4. close": "7140.2500",
                "5. volume": "2021110000"
            }}}


tmp = AttributeDict(tickerdata)
for date in tmp.'TimeSeriesDaily':
    print(date)

但是如果您注意到这个时间序列(每日)'标签需要简化,我认为你可能无法控制或想做。