登录
首页 >  文章 >  python教程

Python处理JSON数据实用教程

时间:2026-03-09 09:14:31 356浏览 收藏

本文深入浅出地讲解了Python内置json模块在实际开发中的核心用法,涵盖字符串与对象的双向转换(loads/dumps)、文件级读写(load/dump)等基础操作,并重点解析了中文显示、格式美化、错误处理等易踩坑细节,还拓展了对datetime、Decimal及自定义类等特殊类型的序列化与反序列化技巧,是一份兼具实用性与深度的JSON数据处理实战手册。

PythonJSON数据如何处理_json模块实战解析【指导】

Python 中处理 JSON 数据最常用、最直接的方式就是使用内置的 json 模块。它轻量、稳定、无需额外安装,能高效完成字符串与 Python 对象之间的双向转换。

json.loads():把 JSON 字符串转成 Python 对象

当你从网络请求(如 requests.get().text)、文件读取或 API 返回中拿到一段 JSON 格式的字符串时,用 loads() 就能把它变成字典、列表等原生 Python 类型。

  • 字符串必须是合法 JSON 格式,比如键名和字符串值都要用双引号,不能用单引号
  • 遇到非法格式会抛出 json.JSONDecodeError,建议加 try-except 处理
  • 示例:json.loads('{"name": "Alice", "age": 25}') → 返回 {'name': 'Alice', 'age': 25}

json.dumps():把 Python 对象转成 JSON 字符串

适合将字典、列表等结构序列化为标准 JSON 字符串,用于发送 HTTP 请求、保存到文件或日志记录。

  • 默认不带缩进,可传 indent=2 让输出更易读
  • 中文默认会被转义(如 \u4f60\u597d),加参数 ensure_ascii=False 可保留原始中文
  • 支持 sort_keys=True 按键字母排序,方便比对或调试

读写 JSON 文件:用 load() 和 dump()

和字符串版本的区别在于:它们直接操作文件对象,省去手动调用 .read().write() 的步骤。

  • json.load(f):从已打开的文件对象中读取并解析 JSON
  • json.dump(obj, f):把 Python 对象写入已打开的文件对象
  • 注意文件要以 'r''w' 模式打开,写入时推荐加 encoding='utf-8'

处理特殊类型:自定义编码与解码逻辑

json 模块默认只支持 int/float/str/list/dict/None/bool 这几种类型。遇到 datetime、Decimal、自定义类等,需扩展处理:

  • default 参数告诉 dumps() 遇到未知类型怎么转(例如把 datetime 转成 ISO 格式字符串)
  • object_hook 参数让 loads() 在解析完字典后自动做二次处理(例如把特定字段转成 datetime 对象)
  • 简单场景下,先用 vars()__dict__ 提取属性再序列化,反向则用类构造器重建实例

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>