【发布时间】:2018-03-13 13:05:19
【问题描述】:
我正在尝试使用 API 请求来收集天气数据,并最终将数据保存到带有 pandas.to_csv 的 CSV 文件中。 API 请求正在运行,但是当我尝试将 API 响应从字典转换为 pandas 时出现此错误。非常感谢任何关于我做错的提示:
TypeError: unhashable type: 'dict'
代码的最后一行搞砸了,shell返回错误:
from urllib.request import urlopen
import json
import pandas as pd
api_key = ""
date = "20170601"
zip_code = "53711"
response = urlopen("http://api.wunderground.com/api/%s/history_%s/q/%s.json" % (api_key, date, zip_code))
json_data = response.read().decode('utf-8', 'replace')
data = json.loads(json_data)
for observation in data['history']['observations']:
print("Date/Time: " + observation['date']['pretty'])
print("Temperature: " + observation['tempi'])
print("Humidity: " + observation['hum'])
df = pd.DataFrame([data], columns=data.keys())
【问题讨论】:
-
如果没有
json的样本,回答就不是那么容易了,但json_normalize应该可以。 -
如何获取 json 样本?是否可以仅打开具有正确 URL 的 Web 浏览器来显示 json?还是 Chrome 开发者模式下的东西???
-
没有
api_key? -
我会将
json_normalize粘贴在代码中的什么位置?谢谢 -
API 密钥是免费的,我想每天最多只能调用 50 次,人们通常会发布这些内容吗?如果没什么大不了的,我会的,哈哈
标签: python-3.x api pandas data-science