【python】http post 在body中传递json数据 以发送

  • http post 在body中传递json数据 以发送,json的格式非常重要
  • 这里要传递json对象,而不是一个json字符串

传递post一个 JSON 字符串 是ok的

是的,

bash 复制代码
{"rsource_rhythm_action_list": {"name": "AI_\\u6708\\u4eae\\u6eba\\u6b7b\\u5728\\u7 

这样的内容确实是 JSON 字符串,但要注意它的使用方式。

这个是 JSON 吗?

{"rsource_rhythm_action_list": {"name": "AI_\\u6708\\u4eae\\u6eba\\u6b7b\\u5728\\u7" 是 JSON 格式的数据。

\u6708 这样的 Unicode 转义是合法的,表示 月("月亮"的"月")。

但 关键点在于你如何发送它!

在 HTTP POST 请求中如何传输 JSON?

有两种常见的方式:

✅ 方式 1(正确):直接传 JSON 对象

javascript 复制代码
import requests

data = {
    "rsource_rhythm_action_list": {
        "name": "AI_月亮溺死在爱河"
    }
}

response = requests.post("http://example.com", json=data)  # 传递 JSON 对象

这样是正确的,服务器可以正确解析 JSON 数据。

❌ 方式 2(错误):传 JSON 字符串

如果你手动 json.dumps(data),就变成了 字符串化的 JSON:

javascript 复制代码
import requests
import json

data = {
    "rsource_rhythm_action_list": {
        "name": "AI_月亮溺死在爱河"
    }
}

json_string = json.dumps(data)  # 变成 JSON 字符串
错误做法 1:这样会导致服务器无法正确解析
handlebars 复制代码
response = requests.post("http://example.com", data=json_string) 
错误做法 2:如果你在 json= 里传递字符串,它仍然是字符串
java 复制代码
response = requests.post("http://example.com", json=json_string)

为什么错误?

java 复制代码
json.dumps() 会把 JSON 转换为字符串,结果是:
java 复制代码
"{\"rsource_rhythm_action_list\": {\"name\": \"AI_\\u6708\\u4eae\\u6eba\\u6b7b\\u5728\\u7\"}}"

服务器接收到的其实是:

java 复制代码
"{ \"rsource_rhythm_action_list\": { \"name\": \"AI_月亮溺死在爱河\" } }"
  • 服务器会认为你传入的是一个字符串,而不是一个 JSON 对象,因此 JSON 解析失败。
    🚀 解决方法
java 复制代码
# 正确做法
requests.post("http://example.com", json=data)  # 直接传 JSON 对象

你的问题可能是什么?

你的 JSON 结构是正确的,但可能:

错误地序列化了 JSON(json.dumps())

服务器预期 JSON 对象,但收到的是 JSON 字符串

你是否使用了 data= 而不是 json= 发送请求?

检查方法:

java 复制代码
print(type(data))  # <class 'dict'> 应该是字典
print(type(json.dumps(data)))  # <class 'str'> 变成了字符串

如果你是 str 类型,就要修正为 dict 类型再发送。

总结

最安全的做法是:

java 复制代码
requests.post("http://example.com", json=data)

这样服务器就能正确解析 JSON 数据了!🚀

相关推荐
2601_9679801114 分钟前
python之用scapy分层解析pcap报文(Ethernet帧、IP数据包、TCP数据包、UDP数据包、Raw数据包)
python·scapy·pcap·协议分析·网络数据包
心疼你的一切21 分钟前
Python自动发邮件实战定时发报表
大数据·开发语言·python
卡提西亚2 小时前
FastAPI基础入门
python·fastapi
fanruitian2 小时前
python 机器学习 ML LinearRegression KNN KMeans
python·机器学习·kmeans
鱼宵2 小时前
取集合第一个元素,Java 为什么要写三种写法?
java·windows·python·java21
卷无止境3 小时前
给AI装上一双眼睛:快速构建代码验证器的思路与落地方案
后端·python
维克兜率天3 小时前
【维克】指数调整:哪些股票会被“强制买入“?
人工智能·python·算法
come112343 小时前
Codex 下不同场景 模式选择
python
神也畏惧菠萝4 小时前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
言乐64 小时前
通过 3D 动画直观演示球形瓶内可滑动半圆机构在倾倒时防粘盖、回正时刮膏体的运动学过程
python·3d·django·virtualenv·pygame