序列化是将数据从某个程序语言的对象表示转换为一种可以存储或传输的格式的过程。Python提供了多种方式实现序列化和反序列化,常用的包括JSON和CSV。下面是详细的攻略:
Python序列化为JSON
JSON是一种轻量级数据交换格式,具有简洁、易读、易解析的特点。
1.序列化为JSON
在Python中,通过import json模块可以实现JSON序列化和反序列化。
假设有以下数据:
import json
data = {
"name": "Alice",
"age": 25,
"city": "Shanghai"
}
代码中,我们使用json.dumps()函数将数据序列化为JSON字符串。
json_data = json.dumps(data)
print(json_data)
运行结果为:
{"name": "Alice", "age": 25, "city": "Shanghai"}
2.反序列化为Python对象
反序列化是将JSON字符串转换为Python对象的过程,可以使用json.loads()函数。
以下代码将JSON字符串反序列化为Python对象:
json_data = '{"name": "Alice", "age": 25, "city": "Shanghai"}'
data = json.loads(json_data)
print(data)
运行结果为:
{'name': 'Alice', 'age': 25, 'city': 'Shanghai'}
Python序列化为CSV
CSV是一种通用的数据格式,在Excel、数据库等中都有广泛的应用。
1.序列化为CSV
Python中,使用CSV模块实现序列化为CSV格式。
假设有以下数据:
import csv
data = [
("name", "age", "city"),
("Alice", 25, "Shanghai"),
("Bob", 30, "Beijing"),
("Charlie", 35, "Guangzhou")
]
代码中,使用csv.writer()函数将数据写入CSV格式文件:
with open("data.csv", "w", newline="") as csv_file:
writer = csv.writer(csv_file)
for row in data:
writer.writerow(row)
CSV格式文件的内容为:
name,age,city
Alice,25,Shanghai
Bob,30,Beijing
Charlie,35,Guangzhou
2.反序列化为Python对象
Python中,通过CSV模块实现将CSV格式数据读取为Python对象的功能。
以下代码将CSV格式文件反序列化为Python对象:
import csv
data = []
with open("data.csv", "r") as csv_file:
reader = csv.reader(csv_file)
for row in reader:
data.append(row)
print(data)
输出结果为:
[['name', 'age', 'city'], ['Alice', '25', 'Shanghai'], ['Bob', '30', 'Beijing'], ['Charlie', '35', 'Guangzhou']]
注意:从CSV格式文件读取的数据都是字符串类型,如需转换成其他数据类型,需要自行处理。例如,可以使用int()函数将数字字符串转换为整数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Python 序列化数据为JSON或CSV - Python技术站