我正在尝试在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 requests
import simplejson
import time
from 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)
答案 0 :(得分:0)
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
开始的字符串,因此您无需首先解析它。&
和=
来表示参数。 +
不会神奇地将参数插入所需的位置。您需要这样做:url = ('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?key=abc123&q='
+ city + '&format=json&date=' + ask + '&tp=24')
requests
可以通过params
为您解决这个问题。