page contents

JSON魔法师:Python中的序列化与反序列化艺术!

Python开发者每天都在和JSON打交道,这种轻量级的数据交换格式已经成为现代编程的通用语言。想象一下,当你的Python对象需要"出门旅行"时,JSON就是它们的行李箱;当它们"回家"时,JSON又变成了解压缩的工具包。

attachments-2025-06-Cxb9EeN46859fc9b4adfc.jpgPython开发者每天都在和JSON打交道,这种轻量级的数据交换格式已经成为现代编程的通用语言。想象一下,当你的Python对象需要"出门旅行"时,JSON就是它们的行李箱;当它们"回家"时,JSON又变成了解压缩的工具包。

把Python对象装进JSON行李箱

序列化就像打包行李的过程,把Python的字典、列表等对象转换成JSON字符串。Python内置的json模块让这个过程变得异常简单:

import json

data = {

    "name": "张三",

    "age": 30,

    "hobbies": ["编程", "摄影", "旅行"],

    "is_developer": True

}

json_string = json.dumps(data, ensure_ascii=False, indent=4)

print(json_string)

ensure_ascii=False参数让中文字符也能优雅地展示,而indent=4则让生成的JSON字符串像诗歌一样排版整齐。这就像给你的行李箱做了精美的装饰,既实用又好看。

从JSON行李箱中取出Python对象

反序列化是序列化的逆过程,把JSON字符串转换回Python对象。这个过程就像打开行李箱,把里面的物品一件件取出来:

json_data = '''

{

    "name": "李四",

    "age": 25,

    "skills": ["Python", "JavaScript", "SQL"],

    "employed": false

}

'''

python_obj = json.loads(json_data)

print(python_obj["name"])

**`json.loads()`**就像一位细心的管家,能够准确地把JSON字符串还原成Python中的字典、列表、布尔值等对应类型。特别值得注意的是,JSON中的`false`会变成Python的`False`,`null`会变成`None`,这种类型映射非常智能。

高级技巧:处理特殊对象

有时候我们会遇到datetime对象或者自定义类实例这样的特殊对象,标准的JSON序列化器会束手无策。这时候就需要施展一些魔法:

from datetime import datetime

import json

class CustomEncoder(json.JSONEncoder):

    def default(self, obj):

        if isinstance(obj, datetime):

            return obj.isoformat()

        return super().default(obj)

data = {

    "event": "产品发布会",

    "time": datetime.now()

}

json_string = json.dumps(data, cls=CustomEncoder)

print(json_string)

自定义编码器就像一位专业的行李打包师,知道如何妥善处理那些特殊的"物品"。通过继承json.JSONEncoder并重写default方法,我们可以教会Python如何序列化各种特殊对象。

JSON在Python中的序列化和反序列化就像一场精心编排的舞蹈,数据在字符串和对象之间优雅转换。掌握这些技巧,你的Python程序就能轻松地与各种Web API、数据库和前端应用对话,让数据在不同系统间自由流动。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2025-06-24 09:17
  • 阅读 ( 55 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1335 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 2172 文章
  3. Pack 1335 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章