我有一个curlPOST 请求,它按预期在终端中返回 CSV。RJMetrcis文档中提供了以下格式(请参阅“导出图形数据”)。这是 bash 中的curl 请求:curl --data-raw "format=csv&includeColumnHeaders=1" -H "X-RJM-API-Key: myapikey" https://api.rjmetrics.com/0.1/figure/12345/export或者,使用-d代替--data-raw也可以但是,当借助之前在 Python 中使用的文章requests的帮助复制此内容时,会返回错误:url = "https://api.rjmetrics.com/0.1/figure/12345/export"payload = "'{\"format\":\"csv&includeColumnHeaders=1\"}'"headers = { 'X-RJM-API-Key': 'myapikey'}response = requests.request("POST", url, headers=headers, params=payload)response.text'{"Error":"Invalid Argument: CSV is currently the only supported format for SQL Reports"}'这是 API 返回的特定错误,指示未请求 CSV 格式(当-dbash 命令中省略时,会引发相同的错误)。然而,这两个请求在语法上是相同的。这里的 Python 问题可能是什么?是否有首选的参数传递方法?
1 回答
蛊毒传说
TA贡献1895条经验 获得超3个赞
import requests
data = {
'format': 'csv',
'includeColumnHeaders': 1
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0',
'X-RJM-API-Key': 'yourapi'
}
def main(url):
r = requests.post(url, data=data, headers=headers)
print(r)
main("https://api.rjmetrics.com/0.1/figure/12345/export")
添加回答
举报
0/150
提交
取消