
[英]Trouble connecting to Azure-Datalakes-gen2 using requests module in python
[英]Trouble using Requests module in Python
我正在尝试使用请求将JSON数据发布到HTTP端点,但是现在出现了这个奇怪的错误(我以前使用它时没有问题)。
非常感谢任何故障排除。
编码:
req = requests.post(HTTP_ENDPOINT, data=json.dumps(data))
输出:
AttributeError:模块“ requests”没有属性“ post”
您是否在文件顶部写入了import requests
? 如果没有,那是你的问题。 如果是,那么对我来说,下一步的调试将是执行print dir(requests)
因为这将告诉您您的请求对象实际上具有哪些属性。
确保HTTP_ENDPOINT和数据有效,应如下所示:
>>> import json
>>> url = 'https://api.github.com/some/endpoint'
>>> payload = {'some': 'data'}
>>> r = requests.post(url, data=json.dumps(payload))
除了自己编码dict外,您还可以使用json参数(在2.4.2版中添加)直接传递dict,它将自动进行编码:
>>> r = requests.post(url, json=payload)
来源是更复杂的POST请求
如果您的文件夹中有一个名为request.py的文件,那么python会将其作为模块导入,并随您使用pip安装的请求包一起导入。
这就是为什么说请求没有属性“ post”的原因。 如果您在request.py中定义一个变量,如下所示:
# requests.py
post = lambda *arg: print('unitended concequence')
您可能会看到它打印出该语句,而不是抱怨发布请求中不包含发布。 解决方案是重命名文件,以使它们不会遮盖要导入的软件包。 例如,将requests.py更改为my_requests.py。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.