为了账号安全,请及时绑定邮箱和手机立即绑定

有没有使用python在django中导入请求库的解决方案?

有没有使用python在django中导入请求库的解决方案?

萧十郎 2021-12-17 16:09:13
我正在尝试在 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)

  1. 不能将 str、int 和 datetime 与+. 它们必须都是字符串。

  2. 您可以先将它们转换为字符串,但由于您的日期时间从input您开始作为字符串开始,因此不需要解析它。

  3. 结果显然不能转换为 int。

  4. 您不希望 URL 为 int。

  5. 结果仍然远不是格式正确的 URL,&并且=在正确的位置表示参数。+不会神奇地将参数插入到您想要的位置。你需要这样做:

url = ('http://api.worldweatheronline.com/premium/v1/past-weather.ashx?key=abc123&q='
        + city + '&format=json&date=' + ask + '&tp=24')
  1. 以上不是很好。requests可以为您解决这个问题params


查看完整回答
反对 回复 2021-12-17
  • 1 回答
  • 0 关注
  • 153 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信