如何將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