3

我试图从 NOAA 访问数据集,用于一个项目。我已经能够下载 json 文件,但我不知道如何打开我打印出来的所需文件。

url = "http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCNDMS"
headers = {"token":"my token"}
response = json.loads(requests.get(url, "dataset", headers = headers).text)
response = response['results']
response = response[0]
print(response)

这是我的输出:

{'uid': 'gov.noaa.ncdc:C00861', 'mindate': '1763-01-01', 'maxdate': '2018-04-22', 'name': 'Daily Summaries', 'datacoverage': 1, 'id': 'GHCND'}

我如何访问该数据集中的数据,因为我希望将它们变成 Pandas DataFrame

4

1 回答 1

0

您的输出是一个字典,可以通过df = pd.DataFrame([response])- NOTICE直接将其转换为 pandas 数据帧,我将此字典作为列表传递给 pandas DataFrame 构造函数。

或者您可以定制您的网址以获取所需的信息。在下面的示例中,我从指定的数据集和日期范围中获取数据,这些数据很容易收集/编辑。

似乎 NOAA 已在某个时候更新了他们的 api 格式,并且那里的许多材料不再有效,因此其他人可能会收到此示例代码的错误。如果您刚刚开始,这种格式将返回一个带有结果的 json 文件,希望您可以从那里调整它:

import requests
import pandas as pd
import json
from datetime import datetime

token = 'yourtoken'

url = "http://www.ncdc.noaa.gov/cdo-web/api/v2/data?datasetid=GHCNDMS&startdate=1776-07-04&enddate=1776-09-04"
headers = {"token":token}

r = requests.get(url, "dataset", headers = headers).text

response = json.loads(r)
response = response['results']
response = response[0]
print(response)

df=pd.DataFrame([response])
于 2022-01-20T18:28:57.027 回答