Python 字典列表转换 CSV 程序
在字典中,键必须唯一且不可变,而值可以是任何类型,并且可以包含值的列表。对于字典列表,每个键都指向一个可以包含多个元素的列表。
这是一个字典列表的示例:
data = {'numbers':[1, 2, 3, 4, 5, 6],
'states':['UP', 'Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu'],
'cities':['Agra', 'Chennai', 'Hyderabad', 'Surat', 'Lucknow', 'Coimbatore']})
在上面的字典中,每个键都映射到一个值列表。例如,'states' 键映射到列表 ['UP', 'Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu']。
另一方面,CSV(逗号分隔值)文件是一个纯文本文件,它以简单的逗号分隔格式存储表格数据。文件中的每一行通常代表一行数据,每一行中的值用逗号分隔。第一行通常作为标题行,包含列名。
这是一个 CSV 文件的示例,它表示前面提到的字典列表中的数据:
numbers,states,cities 1,UP,Agra 2,Tamil Nadu,Chennai 3,Telangana,Hyderabad 4,Gujarat,Surat 5,UP,Lucknow 6,Tamil Nadu,Coimbatore
将字典列表转换为 CSV 文件时,通常的方法是遍历字典的键和值并将它们写入 CSV 文件。本文将讨论几种不同的方法。
使用 csv 模块
Python 中的 csv 模块提供了几种将数据写入 CSV 文件的方法。这些方法是 csv.writer 类的一部分,允许我们将单个行或多行数据写入 CSV 文件。
writerow(row) − 此方法将单行数据写入 CSV 文件。
writerows(rows) − 此方法将多行数据写入 CSV 文件。
此外,我们可以使用zip() 函数逐行迭代字典列表的值。
zip() 函数接受多个可迭代对象(在本例中是值列表),并返回一个迭代器,该迭代器聚合来自每个可迭代对象的元素。这可以有效地将数据从基于列的表示形式转换为基于行的表示形式。
示例
这是一个示例,演示如何使用 Python csv 模块及其方法将字典列表转换为 CSV 文件。
import csv
# define the function
def dict_to_csv(dictionary, filename):
keys = list(dictionary.keys())
values = list(dictionary.values())
with open(filename, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(keys)
writer.writerows(zip(*values))
# create a dictionary of lits
data = {'numbers':[1, 2, 3, 4, 5, 6],
'colors':['red','green', 'yellow', 'blue', 'brown'],
'fruits':['apples','Avocados', 'Pineapples', 'Blueberries', 'Dates']}
print('Input Dictionary of lits:', data)
print()
# Convert dictionary to CSV
dict_to_csv(data, 'Output\output2.csv')
print('Output:')
print('The converted CSV file is created successfully in our working directory.')
输出
Input Dictionary of lits: {'numbers': [1, 2, 3, 4, 5, 6], 'colors': ['red', 'green', 'yellow', 'blue', 'brown'], 'fruits': ['apples', 'Avocados', 'Pineapples', 'Blueberries', 'Dates']}
Output:
The converted CSV file is created successfully in our working directory.
下图显示了在工作目录中创建的转换后的 csv 文件。
使用 pandas 库
pandas 库提供了许多其他功能来处理和操作数据,例如数据过滤、聚合、排序等等。它支持使用 to_csv() 函数从 DataFrame 写入 CSV 文件。
示例
在这种方法中,我们首先从字典列表创建一个 pandas DataFrame,然后我们将使用 to_csv() 方法从 DataFrame 创建一个 CSV 文件。
让我们看一个使用 pandas 库将字典列表转换为 CSV 文件的示例。
import pandas as pd
def dict_to_csv(dictionary, filename):
df = pd.DataFrame(dictionary)
df.to_csv(filename, index=False)
# create a dictionary of lits
data = {'nums':[1, 2, 3, 4, 5, 6],
'states':['UP','Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu'],
'cities':['Agra','Chennai', 'Hyderabad', 'Surat', 'Lucknow', 'Coimbatore']}
print('Input Dictionary of lits:', data)
print()
# Convert dictionary to CSV
dict_to_csv(data, 'Output\output.csv')
print('Output:')
print('The converted CSV file is created successfully in our working directory.')
输出
Input Dictionary of lits: {'nums': [1, 2, 3, 4, 5, 6], 'states': ['UP', 'Tamil Nadu', 'Telangana', 'Gujarat', 'UP', 'Tamil Nadu'], 'cities': ['Agra', 'Chennai', 'Hyderabad', 'Surat', 'Lucknow', 'Coimbatore']}
Output:
The converted CSV file is created successfully in our working directory.
下图显示了在工作目录中创建的转换后的 csv 文件。
以上两个示例演示了使用 Python 编程将字典列表转换为 CSV 文件的不同方法。
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP