![[智能体-163]:Python字典格式与JSON格式的差别](http://pic.xiahunao.cn/yaotu/[智能体-163]:Python字典格式与JSON格式的差别)
一、本质区别Python 字典dict是内存中的数据对象Python 原生数据类型程序运行时存在。JSON是纯文本字符串一种通用数据交换格式跨语言、跨平台传输 / 存储使用。二、语法书写差异最直观1. 引号规则字典单引号、双引号都支持JSON只允许双引号单引号非法python运行# Python 字典合法 d1 {name: 张三} d2 {name: 张三} # JSON 字符串单引号报错只能双引号 json_str {name: 张三}2. 布尔值 空值Python 字典JSONTrue/False首字母大写true/false全小写Nonenull示例python运行d {is_ok: True, data: None} # 转 JSON 后{is_ok: true, data: null}3. 容器类型Python元组tuple(1,2,3)转为 JSON 会自动变成数组[]反向解析也只会得到列表。JSON 只有数组[]没有元组概念。4. 键的类型字典键可以是字符串、数字、元组等不可变类型JSON键只能是字符串数字键会被自动转为字符串python运行d {100: 分数} # 转 JSON{100: 分数}5. 末尾逗号Python 字典最后一个元素后允许加逗号JSON禁止末尾逗号会解析报错python运行# 字典合法 d {a: 1, b: 2,} # JSON 非法 # {a: 1, b: 2,}三、支持的数据类型范围Python 字典支持类型极多字符串、数字、布尔、None、列表、元组、集合、日期、自定义对象等。JSON 仅支持 6 种基础类型对象{}数组[]字符串数字整数 / 小数布尔true/false空值null集合set、datetime、自定义类对象无法直接转 JSON需要手动序列化处理。四、使用场景区别Python 字典程序内部逻辑使用变量赋值、数据计算、函数传参、代码逻辑处理JSON跨语言数据交换Python ↔ Java/JS/Go配置文件、接口请求 / 响应、日志、持久化文本存储五、转换行为总结json库dict → json.dumps()单引号 → 双引号True/False/None→true/false/null元组 → 数组[]数字键 → 字符串键json → json.loads() → dict双引号 → Python 通用引号true/false/null→True/False/None数组[]→ Python 列表list六、精简速记表对比项Python 字典JSON本质内存数据对象文本字符串引号单 / 双引号均可仅双引号布尔True/Falsetrue/false空值Nonenull元组支持()无元组统一为数组[]末尾逗号允许禁止键类型多种合法类型仅字符串用途程序内部运算数据传输、配置、跨语言交互