一、Python序列化数据为JSON的完整攻略
-
什么是JSON
在介绍Python如何序列化数据为JSON之前,需要先介绍一下JSON,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,具有易于人阅读和编写的特点。它基于JavaScript编写,但已经成为一种独立于语言的格式。在Python中,我们可以使用json标准库来序列化和反序列化JSON格式的数据。 -
序列化为JSON
将Python数据类型序列化为JSON格式,我们需要使用json.dumps()函数。该函数的参数可以是列表、字典等Python基本数据类型。
下面是一个简单的例子,将一个python中字典类型的数据,序列化为JSON,然后输出到终端。
import json
data = {
"name": "Micheal Jordan",
"age": 57,
"interests": ["basketball", "golf"],
"champion": ("NBA Championship", 6)
}
json_data = json.dumps(data, indent=4, ensure_ascii=False)
print(json_data)
注意到这个dumps函数有两个可选参数indent和ensure_ascii,indent指定序列化缩进的空格数,ensure_ascii为True则输出ASCII码,为False可以输出中文字符。
- 反序列化为Python数据类型
与序列化操作相对应的是反序列化操作,即将JSON格式的数据反序列化为Python中的数据类型。在Python中,我们可以使用json.loads()函数来完成反序列化。
下面是一个简单的例子,将一个JSON字符串,反序列化为Python中的字典类型数据,然后输出到终端。
import json
json_str = '{"name": "Micheal Jordan", "age": 57, "interests": ["basketball", "golf"], "champion": ["NBA Championship", 6]}'
data = json.loads(json_str)
print(data)
- 实例二
import json
# 定义数据
data = {"name": "TOM", "age": 18, "grade": 90}
# 将数据序列化为json格式
json_data = json.dumps(data)
# 将json格式的数据写入json文件中
with open("my_data.json", "w") as f:
f.write(json_data)
# 从文件中读取json数据
with open("my_data.json", "r") as f:
json_data = f.read()
data = json.loads(json_data)
# 输出读取到的数据
print(data)
以上就是Python如何序列化数据为JSON的完整攻略。
二、Python序列化数据为CSV的完整攻略
-
什么是CSV
CSV(Comma-Separated Values)表示逗号分隔值,是一种常用的文本文件格式,用于在一个字符序列中存储表格数据。在Python中,我们可以使用csv标准库来读写CSV格式的文件。 -
写入CSV文件
将Python中的数据类型写入CSV格式的文件,我们需要使用csv.writer()方法。该方法的参数有一个文件对象,以及一个可选的分隔符(默认为逗号分隔符),通过该方法可以将Python中的数据写入到CSV格式的文件中。
下面是一个简单的例子,将一个Python中的二维列表数据,写入到CSV格式的文件中。
import csv
data = [
["name", "age", "gender", "score"],
["Tom", 20, "male", 90],
["Jack", 22, "male", 80],
["Mary", 21, "female", 95]
]
with open("student.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerows(data)
注意到在打开文件时,指定了newline参数为””,这是为了避免写入CSV文件时出现多余的空行。
- 读取CSV文件
与写入操作相对应的是读取操作,即读取CSV格式的文件,并将其中的数据转换为Python中的数据类型。在Python中,我们可以使用csv.reader()方法来读取CSV格式的文件。
下面是一个简单的例子,读取一个CSV格式的文件,将其内容转换为Python中的二进制列表。
import csv
with open("student.csv", "r", newline="") as f:
reader = csv.reader(f)
data = list(reader)
print(data)
其中,csv.reader()方法返回的是一个迭代器对象,通过遍历该对象,可以将CSV文件中每一行的数据转换为一个Python中的列表。
- 实例二
import csv
# 写入操作
with open("test.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["姓名", "年龄", "地址"])
writer.writerow(["Tom", 18, "Shanghai"])
writer.writerow(["Jerry", 20, "Beijing"])
writer.writerow(["Lucy", 19, "Guangzhou"])
# 读取操作
with open("test.csv", "r", newline="") as f:
reader = csv.reader(f)
for row in reader:
print(row)
以上就是Python序列化数据为CSV的完整攻略。