在html.Div中以html格式编写panda数据



我正在web上抓取一个html表,我可以读取该表,现在我只需要在我的页面中写回。所以我需要在html中返回它。Div((并将其视为一个真实的表

def table():
URL = "https://www.infrontanalytics.com/fe-en/BMG5876H1051/Marvell-Technology-Group-Ltd-/beta"
tables = pd.read_html(URL)
print("There are : ",len(tables)," tables")
print("Take look at table 0")
print(tables[7])
htmlout = html.Div(tables[7].to_html())
return htmlout

我在网页上看到的结果是带有标签的书面表格,但我需要视觉表格:

<table border="1" class="dataframe"> <thead> <tr style="text-align: right;"> <th></th> <th>Company Name</th> <th>Ctry</th> <th>MarketCap.last (mUSD)</th> <th>Beta1-Year</th> <th>Year-To-DatePrice Change(in local currency)</th> </tr> </thead> <tbody> <tr> <th>0</th> <td>Marvell Technology Grou...</td> <td>BMU</td> <td>29 073</td> <td>1.40</td> <td>63.3%</td> </tr> <tr> <th>1</th> <td>International Peers Median</td> <td>International Peers Median</td> <td>International Peers Median</td> <td>1.26</td> <td>42.1%</td> </tr> <tr> <th>2</th> <td>NXP Semiconductors NV</td> <td>NLD</td> <td>45 876</td> <td>1.26</td> <td>28.9%</td> </tr> <tr> <th>3</th> <td>Silicon Motion Technolo...</td> <td>CYM</td> <td>1 561</td> <td>0.94</td> <td>-12.4%</td> </tr> <tr> <th>4</th> <td>QUALCOMM Inc.</td> <td>USA</td> <td>178 268</td> <td>1.20</td> <td>78.6%</td> </tr> <tr> <th>5</th> <td>STMicroelectronics NV</td> <td>NLD</td> <td>36 873</td> <td>1.48</td> <td>42.1%</td> </tr> <tr> <th>6</th> <td>NVIDIA Corp.</td> <td>USA</td> <td>335 702</td> <td>1.36</td> <td>130.5%</td> </tr> </tbody> </table>

如何将我从pandas获得的标签转换为html格式,以在html页面中返回?我使用了to_html((函数,但它并没有像我预期的那样工作。

出于安全原因,不能将原始HTML插入到短划线元素中。您可以选择手动将数据帧转换为包含html.Trhtml.Td等的html.Table元素,或者使用Dash DataTable组件。

在你的情况下,这看起来像这样:

def table():
URL = "https://www.infrontanalytics.com/fe-en/BMG5876H1051/Marvell-Technology-Group-Ltd-/beta"
tables = pd.read_html(URL)
print("There are : ",len(tables)," tables")
print("Take look at table 0")
print(tables[7])
df = tables[7]
htmlout = html.Div(dash_table.DataTable(
id='table',
columns=[{"name": i, "id": i} for i in df.columns],
data=df.to_dict('records'),
))
return htmlout

别忘了导入:

import dash_table