鱼C论坛

 找回密码
 立即注册
查看: 1589|回复: 10

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

[复制链接]
发表于 2022-3-3 16:49:38 | 显示全部楼层 |阅读模式
50鱼币
如题,data{}后面还有个“:”,导致它显示什么调用错误,(见下图)希望大佬们看看,我想知道是什么原因,要如何处理。谢谢谢谢!
还要就是data中是null,但是我取出来的data是“none”,我在需要上传的时候应该原样输入“null”吗
最佳答案
2022-3-3 16:49:39
edwardpooh 发表于 2022-3-3 18:28
除了data = data改成json = data外,我的data内容形式是字典就可以吗(老哥加个好友)


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

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

2.PNG
这种就可以用参数 data

如果你看到的 form data 是带有大括号而且有冒号的,你就得用 json 参数来传
D%N@_%V$9@]J_Z}FRBLBB(D.png
WA7X(Q9N@%X)6D_PTL[L3UT.png
Y(@R}])GGKMMU6]0[FY52)9.png

最佳答案

查看完整内容

你使用requests模块不论是json还是data,都是传的字典呀。 在谷歌浏览器中,普通的表单数据你在form data中看到的是这样子的: 这种就可以用参数 data 如果你看到的 form data 是带有大括号而且有冒号的,你就得用 json 参数来传
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-3 16:49:39 | 显示全部楼层    本楼为最佳答案   
edwardpooh 发表于 2022-3-3 18:28
除了data = data改成json = data外,我的data内容形式是字典就可以吗(老哥加个好友)


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

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

2.PNG
这种就可以用参数 data

如果你看到的 form data 是带有大括号而且有冒号的,你就得用 json 参数来传
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-3 17:15:43 | 显示全部楼层
要不你两个都试试,分别用None NULL
反正空不是 ''
  1. >>> None ==''
  2. False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-3 17:36:49 | 显示全部楼层
大马强 发表于 2022-3-3 17:15
要不你两个都试试,分别用None NULL
反正空不是 ''

我都试过了 都不行 我是没见过这种类型的from data
一般的话不是没有{}的吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-3 17:54:07 | 显示全部楼层
json数据不都是这样?
要不你把网址发来,还有需求,我来试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-3 17:58:25 | 显示全部楼层
大马强 发表于 2022-3-3 17:54
json数据不都是这样?
要不你把网址发来,还有需求,我来试试

网址是内网的 不好发 老哥不好意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-3 18:10:26 | 显示全部楼层
edwardpooh 发表于 2022-3-3 17:58
网址是内网的 不好发 老哥不好意思

你用的是 requests 模块来请求的吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 参数就行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-3 18:28:05 | 显示全部楼层
isdkz 发表于 2022-3-3 18:18
后面带冒号表示传的是 json数据,跟传普通的表单数据是不同的,null 是 其它语言 的空值,

在 json 数据 ...

除了data = data改成json = data外,我的data内容形式是字典就可以吗(老哥加个好友)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-3 19:30:41 | 显示全部楼层
本帖最后由 cflying 于 2022-3-3 19:44 编辑

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

多半是提交的数据类型和服务器接收的类型部一致,贴出请求头看看content-type咋定义的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-3 20:14:41 | 显示全部楼层
cflying 发表于 2022-3-3 19:30
把你的请求头和request.post()那段内容发出来看看

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

问题解决了,确实和请求头有关系,但是不知道和content type有没有关系,我多加了几个请求头就解决了 谢谢哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 19:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表