Python:从JSON中提取一组值

2024-04-20 10:34:14 发布

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

我有一组数据,我从股票市场历史的API中提取。然后将历史记录存储在一个文件中“历史.json". 我需要所有重复出现的“4”键。关闭”。通话中有100天和10年的数据。数据的格式如下:

{
    "Meta Data": {
        "1. Information": "Daily Prices (open, high, low, close) and Volumes",
        "2. Symbol": "SPY",
        "3. Last Refreshed": "2018-01-10",
        "4. Output Size": "Compact",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2017-08-18": {
            "1. open": "242.9000",
            "2. high": "244.1900",
            "3. low": "242.2000",
            "4. close": "242.7100",
            "5. volume": "136748000"
        },
        "2017-08-21": {
            "1. open": "242.6400",
            "2. high": "243.2000",
            "3. low": "241.8300",
            "4. close": "242.9000",
            "5. volume": "65469700"
        }

最好我希望输出的顺序作为一个列表与值排除键作为一个列表。它可以被调用到内存或转换成另一个文件来打开-它确实需要保留顺序,因为它将在算法中按顺序使用。(我试着自己解决问题,但我对编程还是新手,所以如果您能尽可能地简化一些事情,我将不胜感激。)


Tags: 文件数据api列表close历史记录time顺序
2条回答

可以将此数据视为嵌套字典并使用它:

outlist = [v["4. close"]   for v in mydict["Time Series (Daily)"].values()]
print(outlist)

输出:

['242.7100', '242.9000']

数据:

mydict = {
    "Meta Data": {
        "1. Information": "Daily Prices (open, high, low, close) and Volumes",
        "2. Symbol": "SPY",
        "3. Last Refreshed": "2018-01-10",
        "4. Output Size": "Compact",
        "5. Time Zone": "US/Eastern"
    },
    "Time Series (Daily)": {
        "2017-08-18": {
            "1. open": "242.9000",
            "2. high": "244.1900",
            "3. low": "242.2000",
            "4. close": "242.7100",
            "5. volume": "136748000"
        },
        "2017-08-21": {
            "1. open": "242.6400",
            "2. high": "243.2000",
            "3. low": "241.8300",
            "4. close": "242.9000",
            "5. volume": "65469700"
        }}}

迈克尔

你可以检查这个网址https://docs.python.org/2/library/json.html

通过函数“loads”,您可以解析json并得到一个列表作为返回

希望对你有帮助

相关问题 更多 >