下面是Python序列化数据为JSON或CSV的完整攻略:
序列化为JSON格式
什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript语言的一个子集,但是具有独立于编程语言和平台的特性,因此也被广泛应用于各种编程语言中。
Python中序列化为JSON
Python中有一个内置的json库,可以用来实现将Python对象序列化为JSON格式的字符串。
下面是一个示例代码,将Python字典对象序列化为JSON字符串,并打印输出:
import json
data = {
'name': '张三',
'age': 18,
'gender': 'male'
}
json_str = json.dumps(data)
print(json_str)
输出结果为:
{"name": "\u5f20\u4e09", "age": 18, "gender": "male"}
可以看到,输出结果是一个JSON格式的字符串,其中中文字符被转义,这是因为JSON规定了只能使用ASCII字符集。
如果希望输出结果中的中文字符不被转义,可以在dumps函数中指定ensure_ascii参数为False:
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
输出结果为:
{"name": "张三", "age": 18, "gender": "male"}
JSON字符串反序列化为Python对象
要将一个JSON格式的字符串反序列化为Python对象,在Python中也可以利用上面提到的json库中的loads函数。
下面是一个示例代码,将上面的JSON格式的字符串反序列化为Python字典对象,并打印输出:
json_str = '{"name": "张三", "age": 18, "gender": "male"}'
data = json.loads(json_str)
print(data)
输出结果为:
{'name': '张三', 'age': 18, 'gender': 'male'}
序列化为CSV格式
什么是CSV
CSV(Comma-Separated Values)是一种常见的文本格式,用于表格数据的存储和交换。
CSV格式的数据是由若干行和若干列组成的,每一行表示一个数据记录,每一列表示一个数据字段,相邻的字段使用逗号(,)进行分隔。
Python中序列化为CSV
Python中可以使用csv库来实现将数据序列化为CSV格式的文件。
下面是一个示例代码,将Python列表对象序列化为CSV格式的文件,并进行读取和打印输出:
import csv
data = [
['name', 'age', 'gender'],
['张三', 18, 'male'],
['李四', 20, 'female'],
['王五', 22, 'male']
]
# 写入CSV文件
with open('data.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows(data)
# 读取CSV文件
with open('data.csv', 'r') as f:
reader = csv.reader(f)
for row in reader:
print(row)
输出结果为:
['name', 'age', 'gender']
['张三', '18', 'male']
['李四', '20', 'female']
['王五', '22', 'male']
可以看到,CSV文件中每行数据被读取为一个列表对象,并且整个文件的数据也被保存在一个列表对象中。
另外需要注意的是,csv库提供了一些其他的函数来实现更加灵活的CSV文件读写操作,比如DictReader和DictWriter函数,它们可以在读写CSV文件时使用字典格式的数据,并且可以指定数据字段的顺序等。