【发布时间】:2020-09-30 23:45:36
【问题描述】:
我有一个curl POST 请求,它在终端 (macOS) 中完美运行,并按预期返回 csv。 RJMetrcis documentation 中提供了以下格式(请参阅“导出图形数据”)。这是 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 中实现 exact 相同的 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 请求的任何帮助将不胜感激
【问题讨论】:
标签: python csv curl python-requests