首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从python调用发送真/假

从python调用发送真/假
EN

Stack Overflow用户
提问于 2020-11-15 15:52:39
回答 2查看 1.3K关注 0票数 2

我不知道这是否是一个愚蠢的问题,但我已经编写了一个脚本,使用python中的请求进行api put调用。试图发送的数据im包含一个布尔值。所以我的剧本是这样的

代码语言:javascript
运行
复制
import requests

data = {
    'name': 'John',
    'lastname': "Doe",
    'email': "jd@gmail.com",
    'is_staff' : True
}

url = 'http://api.url/user/'
response = requests.put(
    url, data=data, verify=True, allow_redirects=False)

print(response)

但这给了我400个请求错误。然后,我认为问题在于api调用,但当我删除is_staff数据时。

代码语言:javascript
运行
复制
data = {
    'name': 'John',
    'lastname': "Doe",
    'email': "jd@gmail.com",
}

我有200个身份代码。我的入门告诉我,api不知道python的布尔值是什么。但我可能错了。有什么想法吗?

EN

Stack Overflow用户

发布于 2020-11-15 16:20:36

请求库接受数据dict并将其转换为请求体,请求体不是dict,而是包含键和值的字符串。在本例中,它将其转换为key1=value1&key2=value2表单。

您可以通过以下方式查看请求库发送的请求正文:

代码语言:javascript
运行
复制
response.request.body

它回来了

代码语言:javascript
运行
复制
'name=John&lastname=Doe&email=jd%40gmail.com&is_staff=True'

在这种情况下,您要发送的布尔值被转换为"True“或"False”。问题可能是but服务器期望的是"true“或"false”,但这取决于服务器。尝试:

代码语言:javascript
运行
复制
data = {
    'name': 'John',
    'lastname': "Doe",
    'email': "jd@gmail.com",
    'is_staff' : "true"
}

或者说是动态:

代码语言:javascript
运行
复制
is_staff = True
data = {
    'name': "John",
    'lastname': "Doe",
    'email': "jd@gmail.com",
    'is_staff' : str(is_staff).lower()
}
票数 -2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64846514

复制
相关文章

相似问题

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