在Python中将字典写入csv的最有效方法是什么?

时间:2016-03-10 07:49:16

标签: python csv python-3.x dictionary file-io

我正在编写代码来通过从网站上抓取html表来生成csv文件。该函数将查看表<tr>的每一行,并将数据列存储在字典中,如下所示

 def write_data():
    table_date = get_data()   # call function to get data from html table into a dict
    // write table_date to csv

 def get_data():
   data = {}
   for row in tr:
      data['name'] = 'John'
      data['id'] = 12
      return data

这是一个简化版本,但实质上我需要一种方法来为每个表行获取字典对象data并将其写入csv,其中键将是标题行。有效的方法是什么?

1 个答案:

答案 0 :(得分:0)

使用csv.DictWriter() class;只需发送每行的词典:

writer = csv.DictWriter(open_writable_file, fieldnames=['id', 'name'])
writer.writeheader()  # write a row the fieldnames

并为您生成的每个字典:

writer.writerow(table_data)

请确保使用newline=''选项打开可写文件,让csv模块控制行结尾:

with open(filename, 'w', newline='') as open_writable_file):

出于某种原因,csv.DictWriter文档示例中省略了此建议;但是该对象是csv.writer() class的子类,并且其中的建议同样适用。