新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python 中的 JSON:跨语言、跨平台的通用数据交换格式

发布时间:2026/10/1 15:27:46来源:尧图网络
Python 中的 JSON:跨语言、跨平台的通用数据交换格式
一、引言为什么需要 JSON写程序时我们经常要保存数据、传递数据、对接接口。但现实是你的程序用Python写的对方的服务可能是Java、JavaScript、C写的数据要存到文件里下次再读出来数据要发给另一个平台App、网页、服务器每种语言都有自己的对象/数组/结构体没法直接互相认识。于是需要一个“通用语言”来当翻译——这个通用语言就是JSON。一句话理解JSON 就是用来在“不同语言、不同平台”之间传递数据的一种通用字符串格式。二、为什么说 JSON “通用”特性说明跨语言Python、Java、JavaScript、Go、C 等几乎所有主流语言都有 JSON 解析库跨平台网页、安卓、iOS、服务器、单片机都能处理 JSON字符串格式JSON 本质是一段文本字符串不依赖任何特定程序肉眼可读、便于存储和传输易解析数据是“键值对”结构天然对应各语言的字典/对象/Map所以只要把数据转成 JSON 字符串任何一端都能“看懂”。三、JSON 长什么样JSON 由两类结构组成1. 对象对应 Python 的字典{ 姓名: 张三, 年龄: 18, 是否会员: true }2. 数组对应 Python 的列表[后羿, 鲁班, 狄仁杰]JSON 支持的数据类型JSON 类型对应 Python示例字符串 stringstrhello数字 numberint / float18、3.14布尔 booleanbooltrue/false空值 nullNonenull对象 objectdict{a: 1}数组 arraylist[1, 2, 3]注意JSON 里的true/false/null是小写Python 里是True/False/None。四、Python 怎么操作 JSONPython 内置了json模块核心就两个函数函数作用json.dumps()把 Python 数据 → JSON 字符串序列化 / 编码json.loads()把 JSON 字符串 → Python 数据反序列化 / 解码4.1 字典 → JSON 字符串dumpsimport json data {姓名: 张三, 年龄: 18, 是否会员: True} dumps 把字典变成 JSON 字符串 json_str json.dumps(data, ensure_asciiFalse, indent2) print(json_str) print(type(json_str)) # class str本质是字符串4.2 JSON 字符串 → 字典loadsimport json json_str {姓名: 张三, 年龄: 18, 是否会员: true} loads 把 JSON 字符串变成 Python 字典 data json.loads(json_str) print(data[姓名]) # 张三 print(type(data)) # class dict又变回字典了4.3 dumps 常用参数json.dumps(data, ensure_asciiFalse, # 保证中文不乱码不转成 \uXXXX indent2, # 缩进格式化打印好看 sort_keysTrue) # 按键名排序五、JSON 与文件读写实战重点结合你笔记里的文件操作JSON 最常见的用法就是把数据保存到文件 / 从文件读数据。5.1 把数据写入 JSON 文件import json members [ {姓名: 张三, 年龄: 18, 分数: 9500}, {姓名: 李四, 年龄: 20, 分数: 8200}, ] 用 with open 写文件json.dump 直接写进文件注意是 dump 不是 dumps with open(./members.json, w, encodingutf-8) as f: json.dump(members, f, ensure_asciiFalse, indent2) print(写入完成)5.2 从 JSON 文件读取数据import json with open(./members.json, r, encodingutf-8) as f: data json.load(f) # 注意是 load 不是 loads print(data) print(type(data)) # class list区分记忆带s的dumps/loads操作的是字符串不带s的dump/load操作的是文件对象记忆口诀“s” string字符串六、完整实战会员数据 JSON 文件持久化把之前会员管理系统的思路升级成“数据能存盘、能读回”的版本import json FILE ./members.json def load_members(): 从 JSON 文件读取会员列表文件不存在则返回空列表 try: with open(FILE, r, encodingutf-8) as f: return json.load(f) except FileNotFoundError: return [] def save_members(members): 把会员列表保存到 JSON 文件 with open(FILE, w, encodingutf-8) as f: json.dump(members, f, ensure_asciiFalse, indent2) def add_member(members, name, age, score): 添加会员 members.append({编号: len(members) 1, 姓名: name, 年龄: age, 分数: score}) save_members(members) def find_member(members, name): 按姓名查找会员 for m in members: if m[姓名] name: return m return None ---- 使用 ---- members load_members() add_member(members, 张三, 18, 9500) add_member(members, 李四, 20, 8200) print(find_member(members, 张三))运行后members.json文件内容如下[ { 编号: 1, 姓名: 张三, 年龄: 18, 分数: 9500 }, { 编号: 2, 姓名: 李四, 年龄: 20, 分数: 8200 } ]这样即使程序关闭数据也永久保存在文件里下次启动能重新读回来——这就是“数据持久化”。七、常见坑与技巧问题原因解决办法中文变成\u5f20\u4e09默认ensure_asciiTrue加ensure_asciiFalse写文件报错文件编码和读写编码不一致统一用encodingutf-8json.load报错文件里不是合法 JSON先json.loads检查字符串或加异常处理用dump想传字符串参数用错字符串用dumps文件用dumpJSON 文件找不到文件夹不存在 / 路径错相对路径./xxx.json确保目录存在
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

2022年408真题详解:DMA方式与外存磁道扇区计算核心考点 2026/10/1 16:14:25

2022年408真题详解:DMA方式与外存磁道扇区计算核心考点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Node.js 错误处理最佳实践:集中式错误处理而非在中间件内处理(nodebestpractices 2.4 深度解析) 2026/10/1 16:14:24

Node.js 错误处理最佳实践:集中式错误处理而非在中间件内处理(nodebestpractices 2.4 深度解析)

文档教程后端 【免费下载链接】nodebestpractices ✅ The Node.js best practices list (July 2026) 项目地址: https://gitcode.com/GitHub_Trending/no/nodebestpractices 点击查看 免费下载 导读 在 Node.js 后端应用中,错误处理分散在业务模块、路…

阅读更多 →
claudes-c-compiler的6个调试环境变量与集成测试体系:如何快速定位编译问题 2026/10/1 16:14:24

claudes-c-compiler的6个调试环境变量与集成测试体系:如何快速定位编译问题

claudes-c-compiler的6个调试环境变量与集成测试体系:如何快速定位编译问题 【免费下载链接】claudes-c-compiler Claude Opus 4.6 wrote a dependency-free C compiler in Rust, with backends targeting x86 (64- and 32-bit), ARM, and RISC-V, capable of compi…

阅读更多 →
苏州广受信赖的GEO优化公司 视频号GEO优化询盘转化服务商推荐 2026/10/1 16:14:18

苏州广受信赖的GEO优化公司 视频号GEO优化询盘转化服务商推荐

行业选品&合作踩坑四大痛点 AI搜索找不到企业,连候选名单都进不去:很多老板都有过这样的经历,想找靠谱的工业设备、食材供应商或者法律服务机构,先在豆包、DeepSeek、文心一言这类AI工具里搜关键词,结果搜出来的都…

阅读更多 →
企业微信API如何设计任务占用锁?WeComApi 防止群发、补偿和人工重试同时执行 2026/10/1 16:14:18

企业微信API如何设计任务占用锁?WeComApi 防止群发、补偿和人工重试同时执行

官网友情链接: wecomapi.com 企微自动化系统任务越来越多以后,会出现一种非常典型的并发问题:同一个任务可能同时被多个执行者处理。 例如一个群发子任务失败后,系统自动补偿正在运行。 与此同时,运营人员在后台看到失…

阅读更多 →
GEO运营指导服务商哪家靠谱?可维国际详解AI搜索场景产品关联优化策略 2026/10/1 16:14:18

GEO运营指导服务商哪家靠谱?可维国际详解AI搜索场景产品关联优化策略

AI搜索时代,企业为什么需要GEO优化当用户习惯从搜索转向提问,企业的信息布局逻辑也随之改变。 过去企业做网络推广,重点是让网页在搜索结果中排名靠前;而现在,越来越多用户直接向豆包、元宝、千问等AI智能搜索工具提问&#xff0c…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉