我正在尝试在 Django 中链接我的 python 代码,因为我正在使用天气 API 并使用它来提取任何国家/地区的数据。我想使用 API 链接中的位置、日期、格式和 tp。问题是我不知道如何从同一个链接中提取这 4 个特定的东西。它向我展示了这个:Traceback (most recent call last): File "C:\Users\Muahr\source\repos\RCAI-Project\Pest\api.py", line 14, in <module> url=int(api_address+city+24+date_time)TypeError: must be str, not int同时,我正在将整个代码集成到 Django 中,它给我一个错误,请求未定义。原始代码:import requestsimport simplejsonimport timefrom daytime import DateTime api_address='http://api.worldweatheronline.com/premium/v1/past-weather.ashx?key=abc123&q=&format=json&date=&tp=24'city=input("enter\n")ask=input("enter date\n")date_format = "%Y-%m-%d"date_time = datetime.strptime(ask, date_format)url=int(api_address+city+24+date_time)json_data=requests.get(url).json()formatted_data=json_data['data']print(json_data)
1 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
import requests
city = input("enter city\n")
date = input("enter date\n")
json_data = requests.get(
'http://api.worldweatheronline.com/premium/v1/past-weather.ashx',
params=dict(
key='abc123...',
q=city,
format='json',
date=date,
tp='24'
)
).json()
formatted_data = json_data['data']
print(formatted_data)
代码问题:
date_time = datetime.strptime(ask, date_format)
url=int(api_address+city+24+date_time)
不能将 str、int 和 datetime 与
+
. 它们必须都是字符串。您可以先将它们转换为字符串,但由于您的日期时间从
input
您开始作为字符串开始,因此不需要解析它。结果显然不能转换为 int。
您不希望 URL 为 int。
结果仍然远不是格式正确的 URL,
&
并且=
在正确的位置表示参数。+
不会神奇地将参数插入到您想要的位置。你需要这样做:
url = ('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?key=abc123&q=' + city + '&format=json&date=' + ask + '&tp=24')
以上不是很好。
requests
可以为您解决这个问题params
。
添加回答
举报
0/150
提交
取消