如何显示<IPython.core.display.HTML object>?

17

我尝试运行下面的代码,但在显示结果方面遇到了问题。同时,我使用的是PyCharm IDE。

from fastai.text import *

data = pd.read_csv("data_elonmusk.csv",  encoding='latin1')
data.head()

data = (TextList.from_df(data, cols='Tweet')
                .split_by_rand_pct(0.1)
                .label_for_lm()
                .databunch(bs=48))

data.show_batch()

运行代码行"data.show_batch()"时,输出如下:

IPython.core.display.HTML object

4
请勿在标题中加入“已解决”。相反,应添加一个答案来回答问题,并将该答案标记为“已采纳”。这样可以有效地标记问题为已解决。 - wjandrea
1
或者,如果您的问题对未来的访问者没有帮助,可以直接删除它。 - tripleee
你是如何解决它的? - Minions
是的,我只是在Jupyter Notebook上运行了这些代码。 - Siamak Abdi
7个回答

10

如果您不想在 Jupyter Notebook 中工作,可以将 data 保存为 HTML 文件并在浏览器中打开。

with open("data.html", "w") as file:
    file.write(data)

类型错误:write()参数必须是str,而不是HTML。 - Zizzipupp
2
如果你有HTML对象obj,应该写obj.data而不是obj。 - John Donn

4

你只能在浏览器中渲染HTML,而不能在Python控制台/编辑器环境中渲染。

因此,它可以在Jupyter笔记本、Jupyter Lab等环境中运行。

最多你可以调用 .data 来查看HTML代码,但是它不会被渲染


2
只需使用HTML对象的数据组件。
with open("data.html", "w") as file:
    file.write(data.data)

2

我通过在Jupyter Notebook上运行代码解决了我的问题。


2

data.show_batch()后面加入以下代码:

plt.show()


1

除了编写文件之外,另一种选择是在Python中使用HTML解析器程序化编辑HTML。 Python中最常用的工具是beautifulsoup。您可以通过以下方式安装:

pip install beautifulsoup4

然后在程序中,您可以执行以下操作:

from bs4 import BeautifulSoup

html_string = data.show_batch().data
soup = BeautifulSoup(html_string)
# do some manipulation to the parsed HTML object
# then do whatever else you want with the object

0
所以,我猜你真正的问题是
为什么 PyCharm IDE 不能正确渲染 HTML
经过几次测试,似乎 PyCharm 的渲染不支持一些 HTML 标签。以下标签可以正常工作:
display(HTML('<section><h1>Hello</h1><p>Text</p></section>'))

Valid case where html is rendered

但是以下代码将输出 <IPython.core.display.HTML object>
display(HTML('<table><tr><td>Hello</td></tr></table>'))

Invalid case, html is not rendered

所以你得到这个结果的原因是因为HTML渲染包含了一些PyCharm不支持的标签。你使用真实的笔记本来解决问题是正确的做法,但我鼓励你向Jetbrains报告一个错误:https://www.jetbrains.com/help/pycharm/reporting-issues.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接