首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取错误为:期望值:尝试使用请求获取数据时,第1行第1列(char 0)

获取错误为:期望值:尝试使用请求获取数据时,第1行第1列(char 0)
EN

Stack Overflow用户
提问于 2020-05-28 14:13:28
回答 1查看 140关注 0票数 0

我有以下代码:

代码语言:javascript
运行
复制
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)

它给出的错误是

代码语言:javascript
运行
复制
Expecting value: line 1 column 1 (char 0)

但是当我将数据值替换为

代码语言:javascript
运行
复制
data = '{"query":"SELECT COUNT(*) FROM EMPLOYEE"}'

它工作得很好,我得到了适当的响应。但问题是,我不能硬编码一个查询。我必须使用多个查询,我必须在excel中循环。

有谁能帮个忙吗。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 14:55:27

您可以向https://httpbin.org/post发送帖子,它将返回一个页面,描述它接收到的数据。在第一种情况下,它显示发送的数据是

代码语言:javascript
运行
复制
"data": "query=SELECT+COUNT%28%2A%29+FROM+EMPLOYEE"

在第二种情况下

代码语言:javascript
运行
复制
"data": "{\"query\":\"SELECT COUNT(*) FROM EMPLOYEE\"}"

不同之处在于,在第一种情况下,data是表单编码的,而第二种情况(考虑到qoutes的额外转义后)是json。

查看More complicated POST requests中的请求文档,文档中记录了如果你传递一个data来编码它的形式,但是如果你传递一个字符串,它就不是。第二个是有效的,因为这个字符串是有效的json。

由于您传递的是"application/ json ",您应该只传递一个json编码的字符串。requests有一个参数可以为您进行编码,只需从使用data=切换到json=即可

代码语言:javascript
运行
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62058137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档