我想出了如何使用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:&#39; list&#39;对象没有属性&#39; to_csv&#39;。
我迷失了如何解决这个问题,我很确定这很容易,但我所有的研究只带我到html文件中有1个表的示例但没有解析多个并将多个写入csv文件。任何帮助表示赞赏。先谢谢你。
答案 0 :(得分:2)
您正在将tables
写入csv而不是table
尝试:
for i, table in enumerate(tables):
table.to_csv('test{}.csv'.format(i),'a')
另外,你有没有理由使用&#39; a&#39;作为分隔符?