我将一系列事件存储到CSV文件中,每个事件类型都附带不同的数据集。
为了说明,我说有两个事件(还会有更多):
有两种方法可以将这些数据存储在CSV记录中:
选项A
将每个可能的数据项存储在自己的字段中......
speed, incline, snores
因此... 的
15mph, 20%, ,
, , 12
16mph, 20%, ,
14mph, 20%, ,
选项B
将每个事件存储在自己的记录中......
event, value1...
因此... 的
running, 15mph, 20%
sleeping, 12
running, 16mph, 20%
running, 14mph, 20%
如果没有特定的CSV规范,consensus似乎是:
每条记录“应该”包含相同数量的逗号分隔字段。
上下文
问题
在这种情况下,使用选项B会有效吗?
思想
选项B保持人类可读性水平,这是一个优势,即人类而不是处理器读取CSV。使用自定义解析器解析这两种方法都不是更复杂,但是选项B会使CSV格式与其他库,框架,应用程序等的有用性无效。使用选项A未来对单个事件的数据集的更改/版本可能会破坏CSV结构(僵尸, ,
以保持向前兼容性);而选项B将优雅地失败。
修改
这可能针对学生和框架,如OpenFrameworks,Plask,Proccessing等。其中CSV 更容易实现。
答案 0 :(得分:1)
正如您所说,内容方面没有“CSV标准”。真正的答案取决于你在做什么以及为什么。你提到“其他框架,库和应用程序”。我学到的一件事是“不要过度工程”。即使你明天将其插入其他框架,今天不要编写大量的代码。
我会说选项B很好,除非你有特殊要求使用其他应用程序等。
<编辑>
重新阅读你的上下文后,我可能会选择一种输出格式并使用它,而忘记了多种格式:
< / edit>
答案 1 :(得分:1)
我曾经使用的任何“其他框架,库和应用程序”都以不同的方式处理CSV解析,因此尝试符合这些标准中的一个或多个可能会使最终结果过于复杂。我的建议是保持简单并使用适合您特定任务的内容。如果要求人类可读性,则选项B形式的CSV可以正常工作。否则,您可能需要考虑JSON或XML。
答案 2 :(得分:0)
你有什么理由不能使用XML吗?是的,解析起来稍微困难一点,至少对新手而言,但如果是这样,他们可能需要练习。当然,文件大小会更大,但它是可压缩的。