如何从 JSON 文件获取特定值

问题描述 投票:0回答:4

我正在尝试从此 json 文件中获取每个时间段的“5.调整关闭”数据。

{
    "Meta Data": {
        "1. Information": "Monthly Adjusted Prices and Volumes",
        "2. Symbol": "IBM",
        "3. Last Refreshed": "2024-02-22",
        "4. Time Zone": "US/Eastern"
    },
    "Monthly Adjusted Time Series": {
        "2024-02-22": {
            "1. open": "183.6300",
            "2. high": "188.9500",
            "3. low": "178.7500",
            "4. close": "184.2100",
            "5. adjusted close": "184.2100",
            "6. volume": "67308725",
            "7. dividend amount": "1.6600"
        },
        "2024-01-31": {
            "1. open": "162.8300",
            "2. high": "196.9000",
            "3. low": "157.8850",
            "4. close": "183.6600",
            "5. adjusted close": "182.0211",
            "6. volume": "128121557",
            "7. dividend amount": "0.0000"
        }}}

我获取 json 文件并将其存储为“数据”。我希望这会起作用,但没有

r = requests.get(url2)
data = r.json()

for entry in data["Monthly Adjusted Time Series"]:
    print(entry["5. adjusted close"])
python json dictionary
4个回答
0
投票

您想循环这些值吗?当你循环字典时,它只给出键

>>> for _, entry in data["Monthly Adjusted Time Series"].items():
...     print(entry["5. adjusted close"])
...
184.2100
182.0211

0
投票

你说你有一个 JSON 文件。在这种情况下:

import json

with open("foo.json") as data:
    d = json.load(data)
    for v in d["Monthly Adjusted Time Series"].values():
        print(v["5. adjusted close"])

0
投票
for date, values in data["Monthly Adjusted Time Series"].items():
    adjusted_close = values["5. adjusted close"]
    print(f"For {date}, adjusted close: {adjusted_close}")

0
投票
import json

json_string = '''{
    "Meta Data": {
        "1. Information": "Monthly Adjusted Prices and Volumes",
        "2. Symbol": "IBM",
        "3. Last Refreshed": "2024-02-22",
        "4. Time Zone": "US/Eastern"
    },
    "Monthly Adjusted Time Series": {
        "2024-02-22": {
            "1. open": "183.6300",
            "2. high": "188.9500",
            "3. low": "178.7500",
            "4. close": "184.2100",
            "5. adjusted close": "184.2100",
            "6. volume": "67308725",
            "7. dividend amount": "1.6600"
        },
        "2024-01-31": {
            "1. open": "162.8300",
            "2. high": "196.9000",
            "3. low": "157.8850",
            "4. close": "183.6600",
            "5. adjusted close": "182.0211",
            "6. volume": "128121557",
            "7. dividend amount": "0.0000"
        }
    }
}'''

data = json.loads(json_string)
monthly_adj_close = {date: data['Monthly Adjusted Time Series'][date]['5. adjusted close'] for date in data['Monthly Adjusted Time Series']}
print(monthly_adj_close)
© www.soinside.com 2019 - 2024. All rights reserved.