Python Json() - 将数据转换为 JSON 格式

发布时间:2023-05-13

一、JSON简介

在介绍Python中Json()函数前,我们先来了解一下Json。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。常用在在线接口传输数据。JSON采用键值对的方式存储数据,其中键/值需要用双引号引起来。 JSON使用的数据类型包括:数字、字符串、布尔、数组、对象、空值。其中对象用花括号{}括起来,数组用中括号[]括起来。例如,下面是一个Json字符串的示例:

{
    "name": "John",
    "age": 30,
    "isMale": true,
    "languages": ["Python", "JavaScript", "Java"]
}

二、Python中Json()函数的使用

Python内置了json模块,提供了一些方法来完成Json格式的编码和解码。其中,Json()函数用于将Python对象转换为Json格式的字符串。

import json
# 定义一个Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 将Python字典转换为Json字符串
person_json = json.dumps(person)
print(person_json)

输出结果为:

{"name": "John", "age": 30, "isMale": true, "languages": ["Python", "JavaScript", "Java"]}

三、Json()函数的参数

Json()函数有很多参数,下面我们介绍一些常用的参数。 indent:用于设置Json字符串的缩进格式。默认值为None,表示不进行缩进。

import json
# 定义一个Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 将Python字典转换为Json格式的字符串,并设置缩进为4个空格
person_json = json.dumps(person, indent=4)
print(person_json)

输出结果为:

{
    "name": "John",
    "age": 30,
    "isMale": true,
    "languages": [
        "Python",
        "JavaScript",
        "Java"
    ]
}

sort_keys:用于指定是否按照键名对Json字符串进行排序。默认值为False,表示不排序。

import json
# 定义一个Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 将Python字典转换为Json格式的字符串,并按照键名排序
person_json = json.dumps(person, sort_keys=True)
print(person_json)

输出结果为:

{"age": 30, "isMale": true, "languages": ["Python", "JavaScript", "Java"], "name": "John"}

四、Json格式的解码

除了Json()函数可以将Python对象转换为Json格式的字符串之外,json模块还提供了loads()函数,用于将Json格式的字符串转换为Python对象。

import json
# 定义一个Json格式的字符串
person_json = '{"name": "John", "age": 30, "isMale": true, "languages": ["Python", "JavaScript", "Java"]}'
# 将Json格式的字符串转换为Python字典
person_dict = json.loads(person_json)
print(person_dict)

输出结果为:

{'name': 'John', 'age': 30, 'isMale': True, 'languages': ['Python', 'JavaScript', 'Java']}

五、Json格式的文件操作

json模块还提供了dump()和load()函数,用于将Python对象和Json格式的文件相互转换。

import json
# 将Python对象写入Json格式的文件
def write_json_file(data, json_file):
    # 将Python对象转换为Json格式的字符串
    data_json = json.dumps(data)
    # 写入Json字符串到文件
    with open(json_file, 'w') as f:
        f.write(data_json)
# 从Json格式的文件中读取Python对象
def read_json_file(json_file):
    # 从文件中读取Json格式的字符串
    with open(json_file, 'r') as f:
        data_json = f.read()
    # 将Json字符串转换为Python对象
    data = json.loads(data_json)
    return data
# 定义一个Python字典
person = {"name": "John", "age": 30, "isMale": True, "languages": ["Python", "JavaScript", "Java"]}
# 将Python字典写入到Json格式的文件中
write_json_file(person, 'person.json')
# 从Json格式的文件中读取Python对象
person_from_file = read_json_file('person.json')
print(person_from_file)

输出结果为:

{'name': 'John', 'age': 30, 'isMale': True, 'languages': ['Python', 'JavaScript', 'Java']}

总结

Json格式是一种轻量级的数据交换格式,Python内置的json模块提供了很多方法来完成Json格式的编码和解码。Json()函数用于将Python对象转换为Json格式的字符串,loads()函数用于将Json格式的字符串转换为Python对象。此外,json模块还提供了dump()和load()函数,用于将Python对象和Json格式的文件相互转换。