使用Pandas时read_html的ValueError

时间:2018-05-16 10:58:30

标签: python pandas

我有一个使用flask制作的Web应用程序,我使用pandas to_html()函数将excel导出为html表。我使用javascript对html表进行了一些更改,并且想要将这些更改写入excel,以便每次重新加载页面时都会保存它们。

现在,我正在使用Pandas read_html()函数将该html表转换回excel并完成写操作

url = '127.0.0.1:5000/'
data = pd.read_html(url)
data.to_excel(filename,index=False)

但它说ValueError: Table not found 任何人都可以说错了,因为我执行这个脚本时我的烧瓶应用程序正在运行。

这就是我的index.html的样子

<div class=page>
<!-- <h1>Python</h1> -->
{% for table in tables %}
      <h2>{{titles[loop.index]}}</h2>
      {{ table|safe }}
{% endfor %}
</div>

我正在用它来渲染它

render_template('index.html',tables=[re.sub(' mytable', '" id="example', data.to_html(classes='mytable'))],
titles = ['Excel Data to Flask'])

1 个答案:

答案 0 :(得分:0)

您可以使用以下方法将表解析为模板:

这个例子是用熊猫制作的,但我希望能帮到你。

有这样的表:

ipdst           proto   time                   count
10.3.20.102     HTTP    2017-03-20 17:08:56     1
10.3.20.102     HTTP    2017-03-20 17:08:57     1
10.3.20.102     HTTP    2017-03-20 17:08:58     1
10.3.20.102     HTTP    2017-03-20 17:08:58     1
10.3.20.102     TCP     2017-03-20 17:08:59     3

app.py

import pandas as pd
from sqlalchemy import create_engine
import datetime as dt

disk_engine = create_engine('sqlite:///test.db')
df = pd.read_sql_query('SELECT * FROM data', disk_engine)

@app.route('/')
def index():
    return render_template('index.html', tables=[df.to_html()], titles=['ipdst', 'proto'])

if __name__ == '__main__':
    app.run(debug= True)

模板/ index.html中

<div class=page>
  {% for table in tables %}
    {{ table|safe }}
  {% endfor %}
</div>