Python访问JSON elemen

2024-06-07 06:10:46 发布

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

我正在尝试使用DarkSky的API和下面的代码检索天气预报。我只对小时预测数据的一部分感兴趣:

url="https://api.darksky.net/forecast/api_key/33.972386,-84.231986"
response = requests.get(url)
data = response.json()
data

以下是我从数据拉取中获取的JSON数据部分:

^{pr2}$

现在这是一个有点复杂的json文件,我尝试在json文件的每小时部分使用json\u normalize:

json_normalize(data['hourly'])

但我得到的答复是这样的:

        data    icon    summary
0   [{'time': 1553050800, 'summary': 'Clear', 'ico...   clear-day   Clear 
    throughout the day.

你知道我如何获取每小时数据部分的温度和压力吗? 所以我需要得到每一小时的时间,温度,压力和湿度。 谢谢你


Tags: 文件数据apijsonurldataresponsesummary
2条回答

您可以转换数据,使其只包含您感兴趣的值:

代码:

import requests
import json

url = 'https://api.darksky.net/forecast/api_key/33.972386,-84.231986'
response = requests.get(url)
data = response.json()
fields = ['time', 'temperature', 'pressure', 'humidity']
transformed = [
    {
        field: rec.get(field)
        for field
        in fields
    }
    for rec
    in data['hourly']['data']
]

print(json.dumps(transformed, indent=4))

输出:

^{pr2}$

您应该能够通过

data['hourly']['data'][0]['humidity']

所以如果你迭代数据['hourly']['data'],你应该能够得到你想要的数据。在

例如

^{pr2}$

相关问题 更多 >