【问题标题】:Pros and Cons of html-output for statistical data用于统计数据的 html 输出的优缺点
【发布时间】:2012-11-13 10:03:22
【问题描述】:

我正在使用 Python3 从语言语料库中计算一些统计数据。到目前为止,我将结果导出到 csv 文件或直接在 shell 上。几天前我开始学习如何将数据输出到 html-tables。我必须说我真的很喜欢它,它处理了单元格和 unicode 的完美高度/宽度,您可以将颜色应用于不同的值。虽然我认为在处理大数据或表格时会出现一些问题。

无论如何,我的问题是,我不确定是否应该继续朝这个方向前进并将结果输出到 html。在这个领域有经验的人可以帮助我了解使用 html 作为输出的一些利弊吗?

【问题讨论】:

    标签: python html output tabular


    【解决方案1】:

    为什么不两者都做?将您的数据以 CSV 格式提供(用于简单导出到脚本等)并提供经过修饰的 HTML 版本。

    在某个阶段,您可能需要(比如说)适当的 Excel 工作表、PDF 等。所以我会强制将数据生成与渲染分离。让你的生成器返回一个抽象渲染器可以使用的结构,你的具体实现将呈现 CSV、PDF、HTML 等。

    【讨论】:

    • +1。这就是我现在正在使用的方法(使用 Python 和 Java)。数据生成输出 CSV 文件,其他自定义渲染可以使用这些文件来制作精美的 html 页面。我发现 CSV api 更简单,侵入性更小。
    • 您可能希望组件之间有更丰富的接口。 CSV 非常简单,您可能希望嵌入(比如说)格式元数据、列信息等。但是,您的方法目前似乎可行,而且还有很多话要说!
    • +1,您可以使用类似norman 的序列化模块(无耻广告);-) 轻松生成任意数量的输出格式数据。
    • 是的,我认为最好同时使用 CSV 作为 HTML,因为其他人可能希望在其他脚本中包含/使用结果,并且 CSV 很容易处理。 @aguavitae:不,我不知道 norman 的序列化模块,但我可以看一下;)谢谢大家的 cmets!
    【解决方案2】:

    该问题列出了 HTML 格式的一些好处。仅这些就足以将其用作一种输出格式。使用这种方式,您不能轻松地使用 HTML 格式做的事情并不重要,因为您可以根据需要使用其他格式。

    好处包括合理的默认渲染,可以使用 CSS 以多种方式进行微调,可能使用备用样式表(现在甚至 IE 也支持)。您还可以包含链接。

    在没有脚本的情况下,您在 HTML 中不能做的是计算、排序、重新排序,诸如此类。但它们可以通过 JavaScript 添加——不是微不足道的,而是可行的。

    大型表格存在技术难题:默认情况下,浏览器只有在获取、解析和处理整个表格后才会开始显示表格中的任何内容。这可能会导致几秒钟的延迟。解决此问题的一种方法是使用在表格列上设置特定宽度的固定布局 (table-layout: fixed)(它们不需要以物理单位固定;伟大的em 单位工作正常,在现代浏览器上您可以使用@ 987654323@也是)。

    另一个困难是坏的换行符。使用 CSS(或 HTML)很容易修复,但作者经常忽略这个问题,导致例如像“10 m”这样的单元格内容被分成两行。

    在 HTML 中格式化统计数据的其他常见问题包括:

    • 数字字段未向右对齐。
    • 使用衬线字体。
    • 使用并非所有数字都等宽的字体。
    • 使用不明显的连字符“-”插入正确的 Unicode 减去“-”(U+2212,−)。
    • 未以某种合理的方式指示缺失值,导致某些单元格为空。 (浏览器可能会以奇怪的方式处理空单元格。)
    • 水平填充不足,使单元格内容(几乎)碰到单元格边框或单元格背景边缘。

    此类问题有很好且相当简单的解决方案,因此这只是在使用 HTML 作为输出格式时需要注意的一点,而不是反对它的论据。

    【讨论】:

    • 非常感谢 Jukka,是的,我听说过可以很好地处理大型表格/数据的表格布局算法,但我还没有使用它,是时候使用它了!连字符“-”的问题是众所周知的,你提到的这两种类型的连字符我遇到了很多问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多