代码之家  ›  专栏  ›  技术社区  ›  enter_display_name_here

如何用Python打印此嵌套词典的日期?

  •  1
  • enter_display_name_here  · 技术社区  · 6 年前

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

    我尝试了以下操作,但出现了一个关键错误:

    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 回复  |  直到 6 年前
        1
  •  2
  •   Gahan    6 年前
    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)
    
        2
  •  1
  •   Rehan Azher    6 年前

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

        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)
    

    但如果你注意到这一点,你的“时间序列(每日)”标签需要简化,我认为你可能无法控制或不想这样做。