一、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格式的文件相互转换。