参考资料

  1. Python: json模块
  2. python在线编辑器
  3. Python代码格式化工具有哪些
  4. python怎么读取pdf文件

Python: json模块

Python json 模块简介

  • 功能: 用于JSON数据的编码(序列化)与解码(反序列化)。

  • 核心用途: 处理Python对象与JSON格式字符串之间的转换。


主要方法及参数说明

1. json.dumps()(序列化)

  • 功能: 将Python对象转为JSON字符串。

  • 参数:

    • obj: 要序列化的对象(如字典、列表)。

    • indent: 缩进空格数(美化输出,如indent=4)。

    • sort_keys: 是否按键排序(True/False)。

    • ensure_ascii: 非ASCII字符是否转义(默认True,设为False可保留中文)。

    • default: 指定自定义对象的序列化函数。

2. json.loads()(反序列化)

  • 功能: 将JSON字符串转为Python对象。

  • 参数:

    • s: JSON格式字符串。

    • object_hook: 自定义字典的解码函数(如转为自定义类)。

3. json.dump()json.load()

  • 功能: 与dumps/loads类似,但直接操作文件对象。

  • 参数:

    • 需传入文件对象(如open('file.json', 'w'))。


使用方法

序列化示例

import json

data = {"name": "Alice", "age": 25, "hobbies": ["reading", "hiking"]}
json_str = json.dumps(data, indent=4, ensure_ascii=False)
print(json_str)

输出:

{
    "name": "Alice",
    "age": 25,
    "hobbies": ["reading", "hiking"]
}

反序列化示例

json_str = '{"name": "Bob", "score": 90}'
python_dict = json.loads(json_str)
print(python_dict["name"])  # 输出: Bob

文件操作示例

# 写入JSON文件
with open('data.json', 'w') as f:
    json.dump(data, f)

# 读取JSON文件
with open('data.json', 'r') as f:
    loaded_data = json.load(f)

案例解析:自定义对象序列化

需求: 序列化一个自定义类Person的实例。

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 自定义序列化函数
def person_to_dict(p):
    return {"name": p.name, "age": p.age}

person = Person("Charlie", 30)
json_str = json.dumps(person, default=person_to_dict)
print(json_str)  # 输出: {"name": "Charlie", "age": 30}

反序列化为对象:

def dict_to_person(d):
    return Person(d["name"], d["age"])

python_obj = json.loads(json_str, object_hook=dict_to_person)
print(python_obj.name)  # 输出: Charlie

注意事项

  1. JSON仅支持基本数据类型(字符串、数字、列表、字典、布尔值、None)。

  2. 自定义对象需通过default参数或继承JSONEncoder类处理。

  3. 文件操作时注意编码(推荐open使用encoding='utf-8')。

AIGEO优化摘要

AI可读摘要:Python json 模块简介功能: 用于JSON数据的编码(序列化)与解码(反序列化)。核心用途: 处理Python对象与JSON格式字符串之间的转换。主要方法及参数说明1. json.dumps()(序列化)功能: 将Python对象转为JSON字符串。参数:obj: 要序列化的对象(如字典、列表)。indent: 缩进空格数(美化输出,如indent...
常见问题:
Python: json模块主要讲了什么?

Python json 模块简介功能: 用于JSON数据的编码(序列化)与解码(反序列化)。核心用途: 处理Python对象与JSON格式字符串之间的转换。主要方法及参数说明1. json.dumps()(序列化)功能: 将Python对象转为JSON字符串。参数:obj: 要序列化的对象(如字典、列表)。indent: 缩进空格数(美化输出,如indent...

Python: json模块适合哪些人参考?

适合正在了解文章信息、进行对比筛选,或希望快速获得结论的用户参考。

阅读Python: json模块时应重点看哪些内容?

建议重点关注标题、摘要、正文说明、图片资料和更新时间。

AIGEO评分:85/100
  • 建议补充封面或内容图片。
作者:王壹杰
时间:2025-04-18 09:24:04
来源:https://dev.ciilii.com/