【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 数据了!🚀

相关推荐
无名之逆3 分钟前
Hyperlane: Unleash the Power of Rust for High-Performance Web Services
java·开发语言·前端·后端·http·rust·web
我姓曹,谢谢23 分钟前
python---kafka常规使用
开发语言·python·kafka
北海有初拥1 小时前
【从零实现JsonRpc框架#1】Json库介绍
json
孤独野指针*P2 小时前
深度学习中的目标检测:从 PR 曲线到 AP
python·深度学习·yolo
IT信息技术学习圈2 小时前
Python程序打包为EXE文件的全面指南
开发语言·python
云和数据.ChenGuang4 小时前
人工智能 机器学习期末考试题
开发语言·人工智能·python·机器学习·毕业设计
我是小伍同学5 小时前
基于卷积神经网络和Pyqt5的猫狗识别小程序
人工智能·python·神经网络·qt·小程序·cnn
lllsure7 小时前
Python基础语法
开发语言·python
GalenWu8 小时前
对象转换为 JSON 字符串(或反向解析)
前端·javascript·微信小程序·json
秦jh_9 小时前
【Linux网络】应用层协议HTTP
linux·运维·服务器·网络·网络协议·tcp/ip·http