如何将字典数据写入csv文件?
How to write dictionary data to csv file?
我有一本这样的字典。我想将里面的数据写入 csv 文件,但我会一遍又一遍地 运行 我的代码。我怎样才能让它 headers 只写一次?如何删除行之间的空格?
我的代码
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:
第一次搓输出:
秒运行输出:
dict_writer.writeheader() # write the header in your file
dict_writer.writerow(data) # write the data in your file
因此,不要循环这两行,您应该只 运行 writeheader
一次,运行 writerow
函数多次。
我会让你搞清楚具体的实现方式
如何将一个值传递给您的函数以指示是否应写入 headers?像这样:
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])
我有一本这样的字典。我想将里面的数据写入 csv 文件,但我会一遍又一遍地 运行 我的代码。我怎样才能让它 headers 只写一次?如何删除行之间的空格?
我的代码
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:
第一次搓输出:
秒运行输出:
dict_writer.writeheader() # write the header in your file
dict_writer.writerow(data) # write the data in your file
因此,不要循环这两行,您应该只 运行 writeheader
一次,运行 writerow
函数多次。
我会让你搞清楚具体的实现方式
如何将一个值传递给您的函数以指示是否应写入 headers?像这样:
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])