Python3 中 json 格式化输出中文

在 Python 编程中,我们经常需要处理 JSON 数据。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于前后端数据交互。在进行 JSON 格式化输出时,有时候会遇到中文乱码的问题。本文将介绍如何在 Python3 中进行 JSON 格式化输出中文。

JSON 中文输出问题

在 Python3 中,当我们使用 json 模块将 Python 对象序列化为 JSON 字符串时,如果字符串中包含中文,通常会出现乱码的问题。这是因为 Python3 默认使用的是 UTF-8 编码,而 JSON 格式化输出时会将中文转为 Unicode 编码。

解决方法

为了解决 JSON 中文输出乱码的问题,可以在 json.dumps() 方法中添加参数 ensure_ascii=False,这样就可以输出中文字符而不是 Unicode 编码。

下面是一个简单的示例代码:

import json

data = {
    'name': '小明',
    'age': 20,
    'city': '北京'
}

json_str = json.dumps(data, ensure_ascii=False)
print(json_str)

运行以上代码,输出的 JSON 字符串中将会包含中文字符,而不是 Unicode 编码。

示例

下面我们来看一个更复杂的示例,包含了嵌套的数据结构:

import json

data = {
    'name': '小红',
    'age': 25,
    'city': '上海',
    'friends': [
        {
            'name': '小明',
            'age': 20,
            'city': '北京'
        },
        {
            'name': '小刚',
            'age': 22,
            'city': '广州'
        }
    ]
}

json_str = json.dumps(data, ensure_ascii=False)
print(json_str)

运行以上代码,可以得到一个包含嵌套中文的 JSON 字符串。

总结

通过在 json.dumps() 方法中添加 ensure_ascii=False 参数,我们可以在 Python3 中实现 JSON 格式化输出中文的功能。这样在前后端数据交互时,可以更方便地处理中文数据,提升数据交互的效率和便利性。

希望本文对你有所帮助,祝学习愉快!

关系图

erDiagram
    USER {
        string name
        int age
        string city
    }
    FRIEND {
        string name
        int age
        string city
    }
    USER ||--o{ FRIEND : has

表格

姓名 年龄 城市
小红 25 上海
小明 20 北京
小刚 22 广州

文章结束。感谢阅读!