我正在编写代码来通过从网站上抓取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,其中键将是标题行。有效的方法是什么?
答案 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的子类,并且其中的建议同样适用。