我有以下代码:
count_query="SELECT COUNT(*) FROM EMPLOYEE"
headers= {
'Content-Type': 'application/json',
'Authorization': 'Bearer'+' '+token}
data = {"query":count_query}
url='https:....................'
try:
response = requests.post(url, headers=headers, data=data)
print(response.json)
print(response.status_code)
except Exception as e:
print(e)
它给出的错误是
Expecting value: line 1 column 1 (char 0)
但是当我将数据值替换为
data = '{"query":"SELECT COUNT(*) FROM EMPLOYEE"}'
它工作得很好,我得到了适当的响应。但问题是,我不能硬编码一个查询。我必须使用多个查询,我必须在excel中循环。
有谁能帮个忙吗。
发布于 2020-05-28 14:55:27
您可以向https://httpbin.org/post发送帖子,它将返回一个页面,描述它接收到的数据。在第一种情况下,它显示发送的数据是
"data": "query=SELECT+COUNT%28%2A%29+FROM+EMPLOYEE"
在第二种情况下
"data": "{\"query\":\"SELECT COUNT(*) FROM EMPLOYEE\"}"
不同之处在于,在第一种情况下,data
是表单编码的,而第二种情况(考虑到qoutes的额外转义后)是json。
查看More complicated POST requests中的请求文档,文档中记录了如果你传递一个data
来编码它的形式,但是如果你传递一个字符串,它就不是。第二个是有效的,因为这个字符串是有效的json。
由于您传递的是"application/ json ",您应该只传递一个json编码的字符串。requests
有一个参数可以为您进行编码,只需从使用data=
切换到json=
即可
count_query="SELECT COUNT(*) FROM EMPLOYEE"
headers= {
'Content-Type': 'application/json',
'Authorization': 'Bearer'+' '+token}
data = {"query":count_query}
url='https:....................'
try:
response = requests.post(url, headers=headers, json=data)
print(response.json)
print(response.status_code)
except Exception as e:
print(e)
https://stackoverflow.com/questions/62058137
复制相似问题