将元数据存储在 CSV 文件中

THX*_*138 7 export-to-csv

我知道这是对 CSV 格式的滥用。我确实知道更合适的解决方案是导出xls/xlsx文件,或者为用户提供 OData 端点并让他们使用 power hub 检索数据。此时我想坚持使用 CSV,因为它更容易实现。

我需要将平面行列表(报告)导出为 CSV 文件。同时我想包含一些有关数据的元数据。例如报告标题、生成日期和用户。

有没有一种巧妙的方法可以使用 CSV 文件格式来实现这两个目标?

该文件的用途是允许用户在 Excel 中打开文件并进行数据处理。

一种解决方案是将 CSV 分为两部分:元数据和数据。例如

Title,Report Generation Date,Generated by User,,
Outstanding Jobs,5/5/2015,bkent@compusa.com,,
,,,,
Job Started, Estimated Completion, Description, Foo, Bar
9/3/2003,1/1/2006,"do something important""""",5,7
5/4/2007,2/2/2010,"do something else""""",3,12
Run Code Online (Sandbox Code Playgroud)

或者也许有一个用于此目的的 CSV 格式的“标准”扩展?

这种方法有任何实际问题吗?

Sim*_*son 5

当我想向 csv 文件添加一些元数据时,我最终将其存储为 json 字符串,作为最后一个列标题的一部分。

timestamp;x;y;z;heading#{"id": "-L4uNnjWXL2cLY_xpU_s"}
89318.329;0.00541;-0.00548;-0.00219;-1.0
89318.339;0.00998;0.0063;-0.00328;-1.0
89318.349;0.0043;0.01318;0.00069;-1.0
89318.359;0.00477;0.0138;0.0007;-1.0
Run Code Online (Sandbox Code Playgroud)

与OP的建议相比,这样做的优点是,它是一个有效的csv文件,因为所有行都具有相同数量的列,并且每列仅包含一种类型的数据。了解格式的解析器可以在 处分割标头#并解析 json 元数据。不知道格式的解析器将简单地显示最后一列的标题和元数据。


Eri*_* J. 3

CSV 没有允许存储元数据的标准扩展。

您当然可以在文件中为元数据设置一个单独的部分,但这往往会使处理变得复杂,因为 CSV 解析器必须处理单独的标头等。标准 CSV 解析器不会为您执行此操作。

考虑是否可以使用命名约定将元数据存储在单独的文件中,例如

MyData123.csv
MyData123-Meta.csv
Run Code Online (Sandbox Code Playgroud)

您可以将两者捆绑到 Zip 存档中,将它们保存在一起,直到准备好进行处理。

  • `.csvx` - 我最喜欢的矛盾修饰法:) (5认同)
  • @EricJ.,如果有人一直将元数据存储在一个单独的文件中,为什么她会选择一个 CSV 文件呢? (2认同)