一、什么是json.dump?
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。Python中的json模块可以将Python对象转换成JSON格式的字符串,也可以将JSON格式的字符串转换成Python对象。其中,json.dump函数可以将Python对象序列化为JSON格式字符串并将其写入文件中。
import json
data = {'name': '张三', 'age': 18} #定义字典类型数据
with open('data.json', 'w') as f:
json.dump(data, f) #将数据序列化为JSON格式字符串并写入文件中
二、Python对象转换为JSON格式字符串
通过json.dumps函数可以将Python对象转换为JSON格式的字符串。
import json
data = {'name': '张三', 'age': 18} #定义字典类型数据
json_str = json.dumps(data) #将数据序列化为JSON格式字符串
print(json_str) #输出结果:{"name": "\u5f20\u4e09", "age": 18}
三、JSON格式字符串转换为Python对象
通过json.loads函数可以将JSON格式的字符串转换为Python对象。
import json
json_str = '{"name": "张三", "age": 18}' #定义JSON格式字符串
data = json.loads(json_str) #将JSON格式字符串反序列化为Python对象
print(data) #输出结果:{'name': '张三', 'age': 18}
四、使用ensure_ascii参数控制编码
json.dump函数在默认情况下会以ASCII编码方式将Unicode字符编码成反斜杠和十六进制数字的形式进行序列化。可以通过将ensure_ascii参数设置为False来禁止ASCII编码,这样可以保留Unicode字符。
import json
data = {'name': '张三', 'age': 18} #定义字典类型数据
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False) #禁止ASCII编码,保留Unicode字符
五、使用indent参数控制输出格式
默认情况下,json.dump函数输出的JSON格式字符串是一行,可以通过将indent参数设置为一个数值来控制输出格式。
import json
data = {'name': '张三', 'age': 18} #定义字典类型数据
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4) #将输出格式控制为4个空格缩进
六、使用sort_keys参数控制排序
json.dump函数在默认情况下会按照字典键的顺序进行序列化,可以通过将sort_keys参数设置为True来按照键的字母顺序进行排序。
import json
data = {'name': '张三', 'age': 18, 'sex': 'male'} #定义字典类型数据
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, sort_keys=True) #按照键的字母顺序进行排序