python - 带有 Python 的 Noaa API。下载了数据集,我将如何打开它们?

标签 python api web-scraping noaa

我曾尝试从 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

最佳答案

你的输出是一个字典,可以通过df = pd.DataFrame([response])直接变成pandas dataframe - NOTICE,我传递这个字典作为 pandas DataFrame 构造函数的列表

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

似乎 NOAA 在某个时间更新了他们的 api 格式,并且那里的很多 Material 不再有效,因此其他人可能会收到此示例代码的错误。如果您刚刚开始,此格式将返回一个包含结果的 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])

关于python - 带有 Python 的 Noaa API。下载了数据集,我将如何打开它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992805/

相关文章:

python - Scrapy - 提交带有多个按钮的表单

python - "Clicking"带有按钮标签的 HTML 元素

python - 替换列表中的单词

python - 如何将Python程序转换为Azure函数?

python - '' not'' 是否影响 python 中的整个 if 语句?

swift - 如何将参数 (args) 传递给 `request.get` ?

json - 查找网络上的所有 Yammer 组(也许使用 API)?

php - 进行具有不同参数的多个curl请求的最佳实践是什么?

python - 如何使用Python BeautifulSoup提取td HTML标签?

python - 如何使用 pyspark 从 Spark 中批量获取行