如何用 Python 对 JSON 进行格式化的完整教程

如何用 Python 对 JSON 进行格式化的完整教程

如何用 Python 对 JSON 进行格式化的完整教程

1. 引言

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,逐渐成为数据交换和存储的标准。Python提供了简便的方法来处理JSON数据,包括解析、序列化和格式化等操作。本文将全面介绍如何使用Python对JSON进行格式化操作。

2. JSON格式化的意义

JSON数据通常以字符串的形式存在,可读性较差。而JSON格式化是将JSON字符串按照一定的格式重新排列,使其易于阅读和理解。JSON格式化不改变数据本身,只是为了方便人类的可读性。

3. Python中处理JSON的模块

Python的标准库中提供了用于处理JSON的模块json。它包含了一些函数和类,可以方便地进行JSON字符串和Python对象之间的转换。

4. JSON格式化的操作方法

下面将介绍使用Python对JSON进行格式化的三种方法:使用json.dumps()函数、使用json.dump()函数和使用json.JSONEncoder()类。

4.1 使用json.dumps()函数

json.dumps()函数可以将Python对象转换为JSON格式的字符串,并提供了多个参数用于格式化字符串。

示例代码:

import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

formatted_json = json.dumps(data, indent=4)
print(formatted_json)
Python

运行结果:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}
Python

4.2 使用json.dump()函数

json.dump()函数和json.dumps()函数类似,但它将Python对象转换为JSON格式的字符串后,直接写入文件中。

示例代码:

import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

with open("data.json", "w") as file:
    json.dump(data, file, indent=4)
Python

运行结果:

在当前目录生成一个名为data.json的文件,内容如下:

{
    "name": "John",
    "age": 30,
    "city": "New York"
}
Python

4.3 使用json.JSONEncoder()

json.JSONEncoder()类是json.dump()json.dumps()的底层函数。我们可以通过继承该类,自定义JSON格式化的方式。

示例代码:

import json

class CustomEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, set):
            return list(obj)
        return json.JSONEncoder.default(self, obj)

data = {
    "name": "John",
    "age": 30,
    "hobbies": {"reading", "running"}
}

formatted_json = json.dumps(data, indent=4, cls=CustomEncoder)
print(formatted_json)
Python

运行结果:

{
    "name": "John",
    "age": 30,
    "hobbies": [
        "running",
        "reading"
    ]
}
Python

5. 总结

本文介绍了使用Python对JSON进行格式化的完整教程。我们可以使用json.dumps()函数、json.dump()函数和json.JSONEncoder()类来实现JSON格式化的操作。使用这些方法能够提高数据的可读性,方便数据交换和存储。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册