【问题标题】:Export multiple tables from Pandas read_html() to csv file将多个表从 Pandas read_html() 导出到 csv 文件
【发布时间】:2018-03-14 06:09:01
【问题描述】:

我想出了如何使用 pandas read_html() 函数来解析 HTML 文件中的表格。但我无法将表格输出到单个 csv 文件。

这是我的表格在 html 中的样子,称为“example.html”:

<html>

<body>


<table><tr></tr></table>
<table><tr></tr></table>

sjfasfasjfle
sdfølasjdf
fsdfjkj
fj
klsdjfølas
sdfpøjfjøklsdfasmf

Test1
<table border=1>
<tr>
<td>Trondheim</td><td>3</td><td>6</td><td>8.8</td><td>Test</td>
</tr>
<tr>
<td>4</td><td>7</td><td>8</td><td>88</td><td>Test</td>
</tr>
</table>

sdfjasøf<br>
aklsf<br>
klasdjfasljklj<br>
<p>
asdøfjs<br>
klasøflas<br>
øfsdjf<br><br>
kljøflsdjf<br>
kldfjølasjf<br>
<table><tr></tr></table>

Test2
<table border=1>
<tr>
<td>Norway</td><td>3</td><td>76</td><td>778.8</td><td>Test</td>
</tr>
<tr>
<td>74</td><td>77</td><td>78</td><td>88</td><td>Test</td>
</tr>
<tr>
<td>74</td><td>77</td><td>78</td><td>88</td><td>Test</td><td>74</td><td>77</td><td>78</td><td>88</td><td>Test</td>
</tr>
</table>


Test3
<table border=1><tr>Also</tr></table>

<table border=1><tr></tr></table>

<table border=1><tr></tr></table>

</body>

<html>

这是我解析这些表的代码:

import os
import pandas as pd

htmlname = r"example.html"
html = open(htmlname, 'r')
source_code = html.read()
tables = pd.read_html(source_code)

for i, table in enumerate(tables):
    tables.to_csv('test.csv','a')

我收到错误 AttributeError: 'list' object has no attribute 'to_csv'。

我不知道如何解决这个问题,我很确定这很容易,但我所有的研究都只将我带到了 html 文件中包含 1 个表的示例,但没有解析多个表并将多个表写入 csv 文件.任何帮助表示赞赏。提前谢谢你。

【问题讨论】:

    标签: python pandas csv


    【解决方案1】:

    您正在将 tables 写入 csv 而不是 table 试试:

    for i, table in enumerate(tables):
        table.to_csv('test{}.csv'.format(i),'a')
    

    另外,您使用“a”作为分隔符有什么原因吗?

    【讨论】:

    • 谢谢!我不敢相信我错过了
    猜你喜欢
    • 1970-01-01
    • 2015-10-06
    • 2021-08-29
    • 2021-07-25
    • 2014-12-26
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多