我有一个curl
POST请求,它在终端(macOS)中工作得非常好,返回了预期的csv。RJMetrcisdocumentation中提供了以下格式(请参见“导出图形数据”)。下面是bash中的curl请求:
curl -d "format=csv&includeColumnHeaders=1" -H "X-RJM-API-Key: myAPIkey" https://api.rjmetrics.com/0.1/figure/0000/export
我的目标是使用requests
在Python中实现完全相同的curl请求。当我输入与POST请求相同的参数时,返回错误的代码无效:
import requests
headers = {'X-RJM-API-Key: myAPIkey'}
data= {'format=csv&includeColumnHeaders=1'}
url = "https://api.rjmetrics.com/0.1/figure/0000/export"
response = requests.post(url, data, headers)
这将返回错误:
TypeError: memoryview: a bytes-like object is required, not 'str'
第二次尝试时:
response = requests.post(url, data=data, headers=headers)
返回
AttributeError: 'set' object has no attribute 'items'
python中构造POST请求的正确格式是什么,以便它与data = {'key':'value'}
约定匹配,并返回csv?将bash curl POST转换为python POST请求需要任何帮助
在这里,您正在传递一个集合,并且希望传递一个dict或str对象
替换为
你应该把它修好
另一方面,通过查看您的卷曲请求
这完全取决于您希望如何传递数据,下面的代码(以字符串形式传递数据负载)将直接发布数据,这将相当于curl中的原始数据
相关问题 更多 >
编程相关推荐