如何从Python中的json对象检索这些值?

2024-10-04 03:21:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初级的Python程序员。我一直在使用iexapi获取一系列日期的开盘价。在

我的json值显示:

{'AAPL': {'2017-02-09': {'open': 129.1019, 'high': 129.8815, 'low': 128.5821, 'close': 129.8569, 'volume': 28349859.0}, '2017-02-10': {'open': 129.8962, 'high': 130.3669, 'low': 129.4941, 'close': 129.5628, 'volume': 20065458.0}, '2017-02-13': {'open': 130.5042, 'high': 131.2299, 'low': 130.1806, 'close': 130.7101, 'volume': 23035421.0}}}

如果我只想显示所有日期的“公开”价格,我该怎么做?在

我一直在谷歌上搜索列表和字典,但找不到任何有用的东西。。。在

^{pr2}$

Tags: json列表close字典价格open程序员low
3条回答

请试试这个:

def find U未结(库存):

for k,v in stock.items():
    if k == 'open':
        print(stock[k])
    elif isinstance(v, dict):
        find_open(v)

调用函数

找到{'AAPL':{'2017-02-09':{'open':129.1019,'high':129.8815,'low':128.5821,'close':129.8569,'volume':28349859.0},'2017-02-10':{open':129.8962,'high':130.3669,'low':129.4941,'close':129.5628,'volume':20065458.0},'2017-02-13':{130.5042,'high':131.2299,'low':130.1806,'close':130.7101,“卷”:23035421.0}}})

^{} module you are using可以为您提供更方便的格式:a Pandas data frame

df = get_historical_data("AAPL", start, end, output_format='pandas')
print(df.open)

数据是按日期索引的,因此df.open列是按日期开列值的大熊猫Series

^{pr2}$

当您使用json格式时,模块将生成一个Python字典,无需再转换为JSON。这种格式适合于JSON序列化,但您不需要跳过这些限制。当然,开发人员对格式名的选择在这里是令人困惑的。在

要对字典执行同样的操作,只需循环使用'AAPL'引用的字典的所有项;键是日期,值是更多字典,每个列都有一个键:

f = get_historical_data("AAPL", start, end)
for date, date_entry in f['AAPL'].items():
    print(date, date_entry['open'])

这将为您提供dictionary-defined order中的条目;您可能需要先按键排序:

for date, date_entry in sorted(f['AAPL'].items(), key=lambda kv: kv[0]):
    print(date, date_entry['open'])

你在找这样的东西吗:

for day in json_reads['AAPL']:
    print("{0}: {1}".format(day, json_reads['AAPL'][day]['open']))

尽管过于硬编码,您可能可以看到一般的字典访问思想。在

相关问题 更多 >