首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存结构化数据的最佳平面文件格式是什么?

保存结构化数据的最佳平面文件格式是什么?
EN

Stack Overflow用户
提问于 2011-12-17 14:00:49
回答 3查看 5.8K关注 0票数 1

我有5个不同字段的数据(整数、字符串和大字符串的组合),我想把它保存在某种平面文件容器中。我有成千上万个这样的条目,但我不需要任何类型的数据库(根本不需要遍历数据,不需要查询)。我研究过的所有格式(XML、JSON、YAML)都需要为每个条目提供冗余字段,即使我的数据是结构化的和同构的。除了不能使用逗号或换行符作为分隔符之外,像CSV这样的东西就更好了。有什么你推荐的格式吗?

数据格式示例:

id | epoch |短字符串| url |大描述

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-17 14:07:16

您可以使用JSON数组而不是对象。这样就可以将噪音限制在最低限度。它可以是单个数组,也可以是数组数组,具体取决于数据的格式。

它不会像XML那样冗长。YAML就不知道了。

例如,您可以拥有:

代码语言:javascript
复制
[
    [123, 123456789, "short string", "http://url", "large ... description"],
    [123, 123456789, "short string", "http://url", "large ... description"],
    [123, 123456789, "short string", "http://url", "large ... description"],
    [123, 123456789, "short string", "http://url", "large ... description"]
]
票数 3
EN

Stack Overflow用户

发布于 2011-12-17 14:03:54

类似于CSV的文件格式似乎很合适,当然你可以在你的文件中使用任何你喜欢的分隔符,你只需要“转义”所使用的字符,如果它们存在于你存储的数据中。

如果您不想对单个字符进行转义,那么可以使用一种编码方案,它不会输出您选择使用的任何分隔符,比如Base64

我爸爸比你爸爸更强壮!

什么文件模式是“最好的”取决于如此多的环境。例如,当涉及到在客户机和服务器之间发送较小的数据块时,我喜欢JSON。

不过,在平面文件模式中使用它之前,我会三思而后行,特别是在需要包含大量数据的情况下。

JSON在某种程度上是人类可读的,这对调试来说很棒,但对于其他方面就不那么好了。

XML是一种很棒的格式,我喜欢它背后的想法,尽管它太复杂了。

遵循相同想法的CSV文件或类似模式是我的5美分。

示例平面文件模式

id | epoch |短字符串| url |大描述

代码语言:javascript
复制
 |            -> ; (delmiter)
 id           -> matching /^[0-9]+$/
 epoch        -> matching /^[0-9]+$/ (also known as unix timestamp)
 url          -> Urls should not contain raw ';',
                 (explicitly check before input)
 short string -> Normalized
 large desc.  -> Normalized

上面提到的标准化只是指一种清理数据的方法,这样它就不会干扰我们的模式的某些部分。

我们需要对;\r\n进行转义,或者就像前面提到的那样,使用诸如Base64之类的编码算法。

您应该牢记您希望存储数据的顺序。如果您希望比epoch更频繁地解析出url,那么将其尽可能放在行的左边可能是一个好主意。

如果你想要简单/快速的搜索,你可以/应该将所有的“大描述”存储在一个单独的文件中,并且只在需要的时候获取/处理这些数据。

票数 3
EN

Stack Overflow用户

发布于 2011-12-17 14:04:48

您可以使用CSV并使用自己的分隔符,如$%*,;。否则,您可以在文本中转义逗号和换行符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8542943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档