Python HTML Table from CSV



我一直在尝试通过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")

最新更新