如何将 Python 字典保存到 CSV 文件?
在 Python 中,可以使用 CSV 模块将字典保存到 CSV 文件。此过程略微取决于字典的结构。
通常,CSV 文件 的每一行对应表格中的一行,行中的每个值用逗号分隔。CSV 文件广泛使用,因为它们易于读取和写入(处理文件),并且易于以字符串形式传输数据。
常用方法
将 Python 字典保存到 CSV 文件有多种场景,本文重点介绍以下几种常用方法。
使用简单字典(键值对):成对项目的集合,其中每个唯一键都称为值。
使用嵌套字典或列表字典:列表字典包含键,其中每个键都称为值的列表。
使用值为嵌套字典的字典:主字典中的每个键都指向另一个字典。
简单字典
如果字典结构很简单(键值对),则可以直接保存,其中键作为列,值作为行。
示例
在下面的代码中,借助open() 函数 以'W'模式打开 CSV 文件,并使用csv.writer处理行写入。
import csv
# Simply dictionary
my_dict = {'Name': 'Robert', 'Age': 27, 'City': 'Mumbai'}
# Specify the CSV file name
csv_file = 'file.csv'
# Writing to CSV file
with open(csv_file, 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Key', 'Value'])
# Write data
for key, value in my_dict.items():
writer.writerow([key, value])
print(f"Dictionary saved to {csv_file}")
输出
Dictionary saved to file.csv
嵌套字典
如果字典包含嵌套字典或列表(称为嵌套字典),则可以将其保存为每行表示一个项目的格式。
示例
在下面的代码中,字典中的每个键对应一列,每个包含值的列表对应 CSV 文件中的每一行。
import csv
# Example dictionary of lists
Employee_dict = {
'Employee_ID': [101,102,103],
'NAME': ['Robert', 'John','Vikram'],
'City': ['Mumbai', 'Chennai', 'Hyderabad']
}
# Specify the CSV file name
csv_file = 'File.csv'
# Writing to CSV file
with open(csv_file, 'w', newline='') as file:
writer = csv.writer(file)
# Write header
writer.writerow(Employee_dict.keys())
# Write data
rows = zip(*Employee_dict.values())
writer.writerows(rows)
print(f"Dictionary saved to {csv_file}")
输出
Dictionary saved to file.csv
值为嵌套字典
如果字典的值本身就是字典,则可能需要先将其展平,这意味着将这种嵌套结构转换为扁平的 CSV 格式。
示例
在下面的代码中,我们创建一个嵌套字典,外部字典的键对应于其中一列,内部字典的键值对成为其余列。
import csv
# Example nested dictionary
Employee_dict = {
'Robert': {'Age': 30, 'City': 'Mumbai'},
'John': {'Age': 25, 'City': 'Chennai'},
'Vikram': {'Age': 35, 'City': 'Hyderabad'}
}
# Specify the CSV file name
csv_file = 'File.csv'
# Writing to CSV file
with open(csv_file, 'w', newline='') as file:
writer = csv.DictWriter(file, fieldnames=['Name', 'Age', 'City'])
writer.writeheader()
for name, details in Employee_dict.items():
row = {'Name': name}
row.update(details)
writer.writerow(row)
print(f"Dictionary saved to {csv_file}")
输出
Dictionary saved to File.csv
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP