接口测试 字符串转 json 带着的引号如何去掉?

狂天 · 2022年03月28日 · 最后由 阿水 回复于 2022年03月30日 · 5820 次阅读



如图,我想把一个字符串转换成 json,转换之后 json 还带着两边的引号,会导致请求失败(不带引号才能请求成功),
请教下大佬这种问题该如何处理?

看到下面大佬回复我再解释一下为啥要将这个字符串转成 json:
data 是我要传输 json 的数据,虽然看着不像是 json 格式的,但是我得按 json 传。
就像下图的 postman 中的这样

为啥得这么传,因为接口只接收这样的参数,
如果我不使用 json 传,会报格式错误:

所以我需要将这个 data 转换成 json 然后再给接口传参。

最佳回复
狂天 回复

试试 requests.post(url=url, data=data)
也就是使用 requests 的时候,不要用 json 参数,而是用 data 参数,然后 data 参数的值就是你加密后的字符串,不需要再组装厂字典格式

共收到 13 条回复 时间 点赞

就算去掉引号,你那也不是一个 json 串的格式
data = {"username": username, "password": password}
json 串应该是这种,对应 python 中的 dict

看你的截图和你的描述,我是没看懂你到底想干啥。正常的字符串和 json 互转,用 json.loads() 和 json.dumps() 就可以啊

buggg 回复

我又补充了下,大佬再帮忙看看

后端这个样子设计参数真的不会被怼吗

这个应该是加密之后的数据,试试这段 json 传参

{
    "": "XSTTjLu84dm4U7pV5yvI1rgar+9oTHzY9EqYZKzlUhlNk60cOWjwydhIdRmNJvLjQOLFcM8W1wgXEkZuZf3ix55tBuqz9i+r+ZvTuCfJxBzCYrZeACWLA85HFqMcVNWF"
}
狂天 回复

试试 requests.post(url=url, data=data)
也就是使用 requests 的时候,不要用 json 参数,而是用 data 参数,然后 data 参数的值就是你加密后的字符串,不需要再组装厂字典格式

毕竟 90% 的公司,要求是表面功能用起来 OK 就行,对应到研发总监头上也不会去规范这些事情。

headers 里面约定 Content-Type: application/json 就行了,还需要转什么 json,你这个就不是 json

buggg 回复

可以了,感谢大佬

狂天 #10 · 2022年03月29日 Author


没成,传参后在参数前面多了一个等于号

狂天 回复

改成表单就行,说明接口压根就不是 json 格式的传参,建议再多了解下接口

狂天 #12 · 2022年03月30日 Author
墨妖 回复

嗯是这样,刚才了解了下 python 中的 json,发现就是一个字符串,所以这里不能用 json.dump() 转成字符串传

eval() 可以去除两边的引号,自动识别格式。可以用这个吗

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册