我有一本這樣的字典。我想將里面的資料寫入 csv 檔案,但我會一遍又一遍地運行我的代碼。我怎樣才能讓它只寫一次標題?如何洗掉行之間的空格?
我的代碼
import csv
dl = {7: {'id': 11, 'name': 'Abc', 'age': 35},
25: {'id': 28, 'name': 'refd', 'age': 88},
15: {'id': 45, 'name': 'dfgd', 'age': 20}}
id_list = [7, 25, 15]
def to_csv(data):
fieldnames = ['id', 'name', 'age']
with open('data.csv', 'a ') as f:
dict_writer = csv.DictWriter(f, fieldnames = fieldnames)
dict_writer.writeheader()
dict_writer.writerow(data)
for i in id_list:
to_csv(dl[i])
對于空行解決方案是
with open('data.csv', newline='', 'a ') as f:
第一次擦輸出:

第二次運行輸出:

uj5u.com熱心網友回復:
如何將值傳遞給您的函式以指示是否應寫入標頭?像這樣的東西:
def to_csv(data, writeheader):
fieldnames = ['id', 'name', 'age']
with open('data.csv', 'a ') as f:
dict_writer = csv.DictWriter(f, fieldnames = fieldnames)
if writeheader:
dict_writer.writeheader()
dict_writer.writerow(data)
id_list = [7,25,15]
for i in id_list:
to_csv(dl[i], i==id_list[0])
uj5u.com熱心網友回復:
dict_writer.writeheader() # write the header in your file
dict_writer.writerow(data) # write the data in your file
因此,不要回圈這兩行,而應該只運行writeheader一次并writerow多次運行該函式。
我會讓你弄清楚實際的實作
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/451080.html
