我在一个列表中有一堆panda数据框,我需要将它们转换成html表格。每个数据框的html代码看起来都不错,但是当我将html附加到列表中时,我的网页上显示了一堆\n
字符。有人能告诉我如何删除它们吗?
python代码:
dataframe_html = []
table_dic = {}
for df in dataframes:
frame = df.to_html(classes="table table-hover")
dataframe_html.append(frame) #this is the line where all the \n get added
table_dic.update({'dataframe_html':dataframe_html})
return render(request,'InterfaceApp/FileProcessor_results.html',table_dic)
html代码:
<div class="table-responsive">
{{ dataframe_html | safe }}
</div>
显示如下:
'
有谁能帮我解决这个问题吗?
4条答案
按热度按时间5gfr0r5j1#
要显示3个单独的表,请将HTML字符串列表联接为单个字符串:
6ovsh4lw2#
FWIW在游戏的最后阶段:
我原本有:
并且正在获取一整行\n个字符。更改为下面的,换行符消失。
u1ehiz5o3#
即使在比赛后期...
当我遇到同样的问题时,我偶然发现了这个帖子。希望下面的帖子能对某人有所帮助。
我把
df.to_html()
的结果赋给了一个(嵌套的)列表,并在我的Jinja模板中渲染时得到了新的行。Python代码:
Jinja模板:
有关(子)列表和列表元素之间差异的说明,请参考以下代码的输出:
结果:
emeijp434#
甚至比迟到还晚。换行符的问题是,当从应用传递到Jinja时,默认情况下帧是JSON格式的。\n是按字面意思读取的,但表是根据JSON字符串中的内容构建的。有两种情况需要处理,具体取决于传递 Dataframe 的方法:
情况1:使用render_template传递 Dataframe :
在应用中传递不带“df.to_html”的框架。在html中使用Jinja2语法获取不带任何换行符的干净框架:
案例2:传递json.dumps以在JS中检索
如果您通过响应发送帧,例如发布 AJAX 请求,请使用df.to_html()传递帧,如您所做的:
然后在你的JS中,从你的响应中加载HTML中没有换行符的干净框架: