【问题标题】:flask pandas to tabulator tables are all messed up烧瓶熊猫到制表表都搞砸了
【发布时间】:2018-11-25 17:54:37
【问题描述】:

我是一个新开发者,试图将 Pandas DataFrame 传递给 Tabulator ,它可以工作,但表格太乱了

原始文件: original file in excel

没有制表符: to_html() render result

它可以很好地呈现为 html,但是一旦我将 Tabulator 附加到它上面,一切都搞砸了。

在制表符之后: after attaching tabulator to it using ID

我安装它的方式是将Dist中的所有文件复制并粘贴到我的应用程序文件夹中JS文件夹中的JS文件和CSS文件夹中的所有CSS文件

在 HTML 头中:

<link href="{{ url_for ('static', filename='css/tabulator.min.css') }}" rel="stylesheet"></link>


<script type="text/javascript" src="{{ url_for ('static', filename='tabulator.min.js') }}"></script>

HTML 正文:

var table = new Tabulator("#tableId", {});

蟒蛇:

df = pd.read_excel(destination)

return render_template('fileviewer.html',x=df.to_html(table_id='tableId'))

【问题讨论】:

  • 你能发布一个你的html代码示例(包括表头),我可以为你指出正确的方向
  • 就是这样从后端渲染出来的>>pastebin.com/BkUVMJAr
  • 问题在于它对表格单元格使用 th 元素而不是 td 元素。 th 元素应该只用于 thead 而不是 tbody
  • 熊猫是这样渲染的,我也可以用json渲染,可以用json吗?
  • 我会检查 panda,因为不幸的是那不是有效的 HTML。是的 Tabulator 当然可以使用 JSON,没有问题!看看tabulator.info/docs/4.1/data#array 该函数将采用数据数组或 JSON 编码数组

标签: javascript python pandas flask tabulator


【解决方案1】:

查看您发布的代码,问题在于它使用 th 标记作为表格中每一行的第一个单元格,而不是 td 标签。 th 标记只能用于 thead 而不是 tbody

【讨论】:

    【解决方案2】:

    使用 .to_json(orient = "records") 始终是 Tabulator 的最佳选择

    试试这个:

    1) 如果还没有 ID,只需:

    df.insert(0,'id',range(1,len(df)+1))
    df= df.to_json(orient='records')
    
    JsonResponse({'myDF':df})
    

    2) 回到 Javascript 后,当您尝试从 Ajax 响应加载数据时,您必须使用

     data: eval(json.myDF) 
    

    为了制表符正确阅读

    【讨论】:

      猜你喜欢
      • 2021-04-23
      • 2013-08-27
      • 2014-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-30
      相关资源
      最近更新 更多