edwardpooh 发表于 2022-3-3 16:49:38

python进行post请求时 请求的网页data{}后面有一个冒号

如题,data{}后面还有个“:”,导致它显示什么调用错误,(见下图)希望大佬们看看,我想知道是什么原因,要如何处理。谢谢谢谢!
还要就是data中是null,但是我取出来的data是“none”,我在需要上传的时候应该原样输入“null”吗

isdkz 发表于 2022-3-3 16:49:39

edwardpooh 发表于 2022-3-3 18:28
除了data = data改成json = data外,我的data内容形式是字典就可以吗(老哥加个好友)

你使用requests模块不论是json还是data,都是传的字典呀。

在谷歌浏览器中,普通的表单数据你在form data中看到的是这样子的:


这种就可以用参数 data

如果你看到的 form data 是带有大括号而且有冒号的,你就得用 json 参数来传

大马强 发表于 2022-3-3 17:15:43

要不你两个都试试,分别用None NULL
反正空不是 ''
>>> None ==''
False

edwardpooh 发表于 2022-3-3 17:36:49

大马强 发表于 2022-3-3 17:15
要不你两个都试试,分别用None NULL
反正空不是 ''

我都试过了 都不行 我是没见过这种类型的from data
一般的话不是没有{}的吗

大马强 发表于 2022-3-3 17:54:07

json数据不都是这样?
要不你把网址发来,还有需求,我来试试

edwardpooh 发表于 2022-3-3 17:58:25

大马强 发表于 2022-3-3 17:54
json数据不都是这样?
要不你把网址发来,还有需求,我来试试

网址是内网的 不好发 老哥不好意思

isdkz 发表于 2022-3-3 18:10:26

edwardpooh 发表于 2022-3-3 17:58
网址是内网的 不好发 老哥不好意思

你用的是 requests 模块来请求的吗?

isdkz 发表于 2022-3-3 18:18:32

本帖最后由 isdkz 于 2022-3-3 18:21 编辑

后面带冒号表示传的是 json数据,跟传普通的表单数据是不同的,null 是 其它语言 的空值,

在 json 数据中是javascript中的空值,你在python中使用 None 就好,得用 None 对象,不是 "None" 字符串

如果你用的是request模块的话:

把 resp = request.post(url, data=data) 中的关键字参数改成 json 就行,

比如:resp = request.port(url, json=data),具体的参数看你的情况,只要把你的字典的数据传给 json 参数就行

edwardpooh 发表于 2022-3-3 18:28:05

isdkz 发表于 2022-3-3 18:18
后面带冒号表示传的是 json数据,跟传普通的表单数据是不同的,null 是 其它语言 的空值,

在 json 数据 ...

除了data = data改成json = data外,我的data内容形式是字典就可以吗(老哥加个好友)

cflying 发表于 2022-3-3 19:30:41

本帖最后由 cflying 于 2022-3-3 19:44 编辑

把你的请求头和request.post()那段内容发出来看看

多半是提交的数据类型和服务器接收的类型部一致,贴出请求头看看content-type咋定义的

edwardpooh 发表于 2022-3-3 20:14:41

cflying 发表于 2022-3-3 19:30
把你的请求头和request.post()那段内容发出来看看

多半是提交的数据类型和服务器接收的类型部一致,贴出 ...

问题解决了,确实和请求头有关系,但是不知道和content type有没有关系,我多加了几个请求头就解决了 谢谢哈
页: [1]
查看完整版本: python进行post请求时 请求的网页data{}后面有一个冒号