我一直在尝试通过Python读取CSV文件到HTML表中。目前,我的代码看起来像:
import csv
table = ''
with open("2016motogp.csv", encoding="utf8") as csvFile:
reader = csv.DictReader(csvFile, delimiter=',')
table = '<tr>{}</tr>'.format(''.join(['<td>{}</td>'.format(header) for header in reader.fieldnames]))
for row in reader:
table_row = '<tr>'
for fn in reader.fieldnames:
table_row += '<td>{}<td>'.format(row[fn])
table_row += '<tr>'
table += table_row
这是书面表的输出:https://www.w3schools.com/code/code/tryit.asp?filename = fg5tpw9ey3lt
它在整个html表标签上都有所有的名称和奇数添加中的错误。除了在年度细胞前的奇数添加外,标题线很干净。
这是CSV的链接:https://uploadfiles.io/6joj6
如果有人可以通过调整代码来帮助"清理"桌子,这将不胜感激。预先感谢,
编辑:感谢您的帮助,通过纠正后斜线到向前斜斜,纠正了HTML标签,通过更改编码选项来纠正年度单元格的添加。我发现 xa0是一个编码错误或沿这些行的其他内容,并使用了: table = table.replace(u'xa0', u' ')
替换添加。
不要手动生成html",请改用dominate
模块。更容易,更健壮。另外,您的代码中有两个错别字-<tr>
应该是</tr>
,<td>
应为</td>
。
as @błotosmętek已经提到过,您在某些HTML标签中有<
而不是</
。
关于奇怪的添加,看来CSV不是UTF-8,它是带有BOM的UTF-8。尝试open("2016motogp.csv", encoding="utf-8-sig")
。