Python字典与JSON格式互相转换指南

陆景行
陆景行
发布时间:2026-10-12 | 3人浏览过
原创

详细讲解如何利用Python内置json模块实现字典与JSON字符串的双向转换。通过代码演示序列化与反序列化操作流程,明确字典键的唯一性与不可变限制,并提供嵌套复杂结构的标准写法,助力快速完成数据交换任务。

JSON与Python数据的对应关系

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端传输文本数据。Python通过内置的json库提供类型映射机制,无需额外安装即可在两种格式间无缝切换。数据解析通常分为两个阶段:从JSON字符串到Python对象(反序列化),以及从Python对象到JSON字符串(序列化)。

转换前的核心注意事项

字典键的特性限制

字典的值可包含任意Python对象,但键必须遵循以下规则:

  • 唯一性:同一键不能出现两次。创建时若重复赋值,后一个值将覆盖前者。
字典同名键赋值覆盖演示截图
演示相同键被多次赋值时,仅保留最后一次赋值的内存状态
  • 不可变性:键必须是哈希类型(如数字、字符串或元组)。列表等可变对象无法作为键,否则触发TypeError。
使用列表作为字典键报错的终端输出截图
展示将列表直接设为字典键时引发的运行时错误

实现字典与JSON转换的操作步骤

第1步:引入标准JSON模块

目的:启用数据转换工具。入口:新建或打开待处理的Py文件。动作:添加模块声明。重要参数:无。完成状态:解释器可识别json命名空间。

import json

第2步:使用json.dumps()将字典转为JSON字符串

目的:将内存中的Python对象持久化或网络传输。入口:交互式命令行或脚本运行窗口。动作:调用序列化函数传递字典。重要参数:目标字典对象、可选的缩进(indent)控制符。完成状态:终端打印出类型为str的标准JSON文本。

>> d = {'s': 'you', 'd': 'are'}
>> j = json.dumps(d)
>> type(j)
<class 'str'>
json.dumps函数执行结果终端截图
验证输出对象的类型已确认为字符串,表明序列化成功

第3步:使用json.loads()将JSON字符串还原为字典

目的:接收外部传入的报文并还原为可计算对象。入口:同上交互环境。动作:调用反序列化函数传入JSON字符流。重要参数:合法的JSON字符串。完成状态:终端返回类型为dict或list的Python原生数据结构。

>> d1 = json.loads(j)
>> type(d1)
<class 'dict'>
json.loads函数执行结果终端截图
确认还原后的数据类型恢复为Python字典

嵌套数据的结构特征

在实际业务中,经常需要处理多层级嵌套的数据。JSON本身不支持注释和函数,仅由键值对(Object)和有序列表(Array)构成。当字典内嵌字典或列表时,转换逻辑依然有效:

dict1 = {
    'java': {'year': '1996', 'url': 'www/baidu.com', 'score': [20, 30, 40]},
    'python': {'year': '1994', 'url': 'www/baidu.com', 'score': [50, 60, 70]}
}
list_dict = [{'java': 'aaa'}, {'python': 'bbbb'}]
list_dict2 = {'java': [{'year': '1996', 'score': [20, 30, 40]}, {'year': '1994', 'score': [50, 60, 70]}]}

上述结构均可被dumps()正确编码为合法JSON文本。解析时,JSON中的[]会自动映射为Python的list,{}映射为dict,基础类型按标准类型表对应转换。

简要总结

以上就是Python字典和JSON格式互相转换的详细内容,更多关于Python数据处理与接口开发的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表