当前位置: 首页 > news >正文

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

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

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

是的,

{"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 对象

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:

import requests
import json

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

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

为什么错误?

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

服务器接收到的其实是:

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

你的问题可能是什么?

你的 JSON 结构是正确的,但可能:
错误地序列化了 JSON(json.dumps())
服务器预期 JSON 对象,但收到的是 JSON 字符串
你是否使用了 data= 而不是 json= 发送请求?
检查方法:

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

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

总结

在这里插入图片描述

最安全的做法是:

requests.post("http://example.com", json=data)

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

相关文章:

  • HDC 和 HiLog 命令详细介绍
  • 【数据结构】如何解决二叉树在遍历查找前驱与后继的问题?线索二叉树来帮您……
  • 使用Appium的W3C Actions实现多指触控行为
  • 基于Flask的东方财富网股票数据可视化分析系统
  • Qt窗口控件之字体对话框QFontDialog
  • 计算机基础:二进制基础13,十六进制与二进制的相互转换
  • vue3+Ts+elementPlus二次封装Table分页表格,表格内展示图片、switch开关、支持
  • 一个数的约数之和与约数个数
  • 第二:go 链接mysql 数据库
  • docker可视化之dpanel
  • 什么是强化学习?
  • 分体空调计费系统带来的公平与便捷
  • 超参数优化算法:scikit-opt库、
  • Socket封装---模板方法类
  • 【数据库】Data Model(数据模型)数据模型分析
  • 施工企业管理软件:融合协同办公与资源调配功能,助力企业精细化项目管理
  • Nginx面试题
  • 双缓冲机制(含原理、优势、实现方式、应用场景)
  • 字符串哈希从入门到精通
  • 【Linux网络-网络层】TCP与IP的关系+IP协议基本概念+网段划分+路由+IP分片与组装
  • 霍步刚任辽宁沈阳市委书记
  • 德州国资欲退出三东筑工,后者大股东系当地房企东海集团
  • 租车订单时隔7年从花呗免密扣费?“GoFun出行”引质疑
  • 新华时评:让医德医风建设为健康中国护航
  • 加拿大总理宣布新内阁名单
  • 专访|茸主:杀回UFC,只为给自己一个交代