Python字典写入CSV
什么是CSV文件?
CSV是Comma-Separated Values的缩写,即逗号分隔值。它是一种常见的电子表格文件格式,在数据处理和数据交换中极为常见。CSV文件使用文本进行格式化,每条记录都占用一行并使用逗号分隔字段。
例如下面这个简单的CSV文件:
name,age,gender
Mike,25,Male
Lucy,24,Female
Tom,26,Male
其中第一行是表头,描述了每个字段的含义,后面各行表示各个记录,各个字段用逗号进行分隔。
Python写入CSV文件
在Python中,要把一个字典写入CSV文件,需要先将字典转化为一个二维列表,再通过Python的csv模块进行写入操作。
下面演示一个例子:
import csv
data = [
{"name": "Mike", "age": "25", "gender": "Male"},
{"name": "Lucy", "age": "24", "gender": "Female"},
{"name": "Tom", "age": "26", "gender": "Male"}
]
fields = ["name", "age", "gender"]
with open("example.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fields)
writer.writeheader()
writer.writerows(data)
上面代码中,首先定义了一个字典列表data,其中每个字典表示一个记录。然后定义了一个字段列表fields,表示每条记录包含哪些字段。
接着使用csv.DictWriter创建一个writer对象,指定文件对象f和字段列表fields。函数writeheader()用来写入表头,函数writerows()用来写入多行记录。
最后将这个二维列表数据写入到文件example.csv中。注意要设置newline=””,否则将在写入文件时自动添加额外的空行。要指定编码为”utf-8″,以免出现乱码问题。
这个例子写入的CSV文件内容如下:
name,age,gender
Mike,25,Male
Lucy,24,Female
Tom,26,Male
读取CSV文件
如果要读取CSV文件并将数据转换为字典,可以使用Python的csv模块。
import csv
with open("example.csv", "r", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
上面代码中,使用csv.DictReader读取文件example.csv,得到一个可迭代的reader对象。然后使用for循环逐行读取记录,并将其转换为一个字典,输出到控制台。
运行上面代码将输出:
{'name': 'Mike', 'age': '25', 'gender': 'Male'}
{'name': 'Lucy', 'age': '24', 'gender': 'Female'}
{'name': 'Tom', 'age': '26', 'gender': 'Male'}
结论
Python内置的csv模块提供了方便的CSV文件读写功能。使用csv.DictWriter可以将字典列表写入CSV文件,使用csv.DictReader可以将CSV文件读取为字典。通过CSV文件格式化的特点,我们可以轻松地进行数据交换和数据处理。