详解Python 序列化数据为JSON或CSV

  • Post category:Python

以下是序列化数据为JSON或CSV的完整攻略:

序列化数据为JSON

  1. 导入 json 库

python
import json

  1. 准备要序列化为 JSON 的数据

比如有一个字典,包含了 name、age、gender 三个key,每个key对应一个value。可以创建如下字典数据:

python
person = {
"name": "Tom",
"age": 30,
"gender": "male"
}

  1. 实现序列化

使用 json.dumps() 函数来将 python 中的数据(比如字典、列表等)编码成 JSON 格式的字符串。

python
json_str = json.dumps(person)

此时,json_str 的值为 ‘{“name”: “Tom”, “age”: 30, “gender”: “male”}’

  1. 将 JSON 字符串转换为 python 对象

使用 json.loads() 函数来将 JSON 格式的字符串解码为 python 对象。

python
python_obj = json.loads(json_str)

此时,python_obj 的值为 {‘name’: ‘Tom’, ‘age’: 30, ‘gender’: ‘male’}

序列化数据为CSV

  1. 导入 csv 库

python
import csv

  1. 准备要写入 CSV 文件的数据

例如有一个包含学生信息的列表,每个元素是一个字典,包含了name, age, gender三个key,每个key对应一个value。可以创建如下列表数据:

python
students = [
{"name": "Tom", "age": 18, "gender": "male"},
{"name": "Lucy", "age": 20, "gender": "female"},
{"name": "Mike", "age": 19, "gender": "male"}
]

  1. 实现写入 CSV 文件

可以使用 csv.writer() 函数来实现写入 CSV 文件的操作。

““python
with open(‘students.csv’, ‘w’, newline=”) as csvfile:
writer = csv.writer(csvfile, dialect=’excel’)

# 写入表头
writer.writerow(['name', 'age', 'gender'])

# 写入数据
for student in students:
    writer.writerow([student['name'], student['age'], student['gender']])

““

运行后,会在当前目录下生成一个名为“students.csv”的文件,文件内容为:

name,age,gender
Tom,18,male
Lucy,20,female
Mike,19,male

  1. 读取 CSV 文件

可以使用 csv.reader() 函数来实现读取 CSV 文件的操作。

““python
with open(‘students.csv’, ‘r’, newline=”) as csvfile:
reader = csv.reader(csvfile)

# 跳过表头
next(reader)

# 读取数据
for row in reader:
    print(row)

““

运行后,会输出以下内容:

['Tom', '18', 'male']
['Lucy', '20', 'female']
['Mike', '19', 'male']

以上就是Python序列化数据为JSON或CSV的完整攻略,示例代码已经给出,如果有任何问题,请随时咨询。