在 Python 中將字典寫入 CSV
本教程將介紹如何在 Python 中將一個字典變數寫入 csv 檔案。
在 Python 中使用 csv
模組將一個字典寫入 CSV 檔案
Python 模組 csv
包含了操作 csv 檔案的工具和函式。有兩種簡單的方法可以用來將字典寫入 csv 檔案。writer()
和 DictWriter()
。
這兩個方法的功能類似,唯一不同的是 DictWriter()
是一個包含更多功能的封裝類。
讓我們用一個帶有幾個鍵-值對的字典設定一個初始示例:
dct = {'Name': 'John', 'Age': '23', 'Country': 'USA'}
在第一個例子中,我們使用 writer()
來訪問一個新的 csv 檔案並將字典插入其中。
import csv
dct = {'Name': 'John', 'Age': '23', 'Country': 'USA'}
with open('dct.csv', 'w') as f:
writer = csv.writer(f)
for k, v in dct.items():
writer.writerow([k, v])
由於檔案訪問型別是 w
,csv 檔案 dct.csv
的內容將被新的更改覆蓋。如果該檔案不存在,那麼它將在同一目錄下自動建立。
csv 檔案的內容將輸出:
由於只有一個字典條目,csv 檔案的佈局在第一列中包含了所有的鍵,而值在第二列中。
使用字典陣列的例子
這是一個單一字典的例子。如果你想在一個 csv 檔案中插入多個字典怎麼辦?
在這個例子中,將使用函式 DictWriter()
來寫入 csv 檔案。第一個例子的 CSV 佈局也需要改變,因為有多個相同鍵的值。
第一行應該包含鍵標籤,隨後的幾行將包含每個字典條目的值。
首先,宣告一個具有相同鍵值的字典陣列。
dct_arr = [
{'Name': 'John', 'Age': '23', 'Country': 'USA'},
{'Name': 'Jose', 'Age': '44', 'Country': 'Spain'},
{'Name': 'Anne', 'Age': '29', 'Country': 'UK'},
{'Name': 'Lee', 'Age': '35', 'Country': 'Japan'}
]
現在使用 csv
模組和 DictWriter()
將這個字典陣列寫入 csv 檔案。
import csv
labels = ['Name', 'Age', 'Country']
dct_arr = [
{'Name': 'John', 'Age': '23', 'Country': 'USA'},
{'Name': 'Jose', 'Age': '44', 'Country': 'Spain'},
{'Name': 'Anne', 'Age': '29', 'Country': 'UK'},
{'Name': 'Lee', 'Age': '35', 'Country': 'Japan'}
]
try:
with open('csv_dct.csv', 'w') as f:
writer = csv.DictWriter(f, fieldnames=labels)
writer.writeheader()
for elem in dct_arr:
writer.writerow(elem)
except IOError:
print("I/O error")
DictWriter()
中的引數 fieldnames
分配給變數 labels
,它是一個字典陣列的鍵標籤陣列。
練習用異常處理(try ... except
)來包裝操作檔案的程式碼也是不錯的。這是為了防止外部錯誤或關於檔案寫入過程的不相容。
輸出:
總而言之,csv
模組包含了所有必要的功能和工具,以將字典寫入 csv 檔案。使用函式 writer()
和 DictWriter()
都可以很容易地實現這個功能。
另外要注意的是,要把操作檔案的塊用異常處理包起來,以確保在它破壞東西之前就能捕獲到 IO 錯誤。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn相關文章 - Python CSV
- Python 逐行寫入 CSV
- 在 Python 中將列表寫入 CSV 列
- 在 Python 中逐行讀取 CSV
- 使用 Python 將 XML 轉換為 CSV
- 在 Python 中合併 CSV 檔案
- 在 Python 中將 XLSX 轉換為 CSV 檔案