为啥我的 CSV 比具有相同数据的 JSON 文件大?
Posted
技术标签:
【中文标题】为啥我的 CSV 比具有相同数据的 JSON 文件大?【英文标题】:Why is my CSV larger than my JSON file with identical data?为什么我的 CSV 比具有相同数据的 JSON 文件大? 【发布时间】:2016-06-24 21:42:41 【问题描述】:我使用 pandas 将一个大型数据集(510,000 行)导出为 CSV 和 JSON 以进行比较。这两个文件包含相同的数据集。
-rw-r--r-- 1 ****** staff 187584246 Jun 24 16:23 case_06-24-16_16-14.csv
-rw-r--r-- 1 ****** staff 14026640 Jun 24 16:24 case_06-24-16_16-14.csv.zip
-rw-r--r-- 1 ****** staff 159802082 Jun 24 16:23 case_06-24-16_16-14.json
-rw-r--r-- 1 ****** staff 13985789 Jun 24 16:23 case_06-24-16_16-14.json.zip
我的 CSV 文件怎么可能比我的 JSON 文件大?
【问题讨论】:
cat csv 和 json 的前几行 向我们展示文件的某些部分,我们也许可以确定原因 一个想法是他们如何处理数字?在 JSON 中,整数和浮点数之间没有区别,因此只需将 float 2.0 表示为 2 即可,而 csv 可能存储 2.0 以便您可以推断类型。不确定这是否足以在没有看到数据的情况下解释差异。 csv 不会在第 0 行有字段名,仅作为标题吗?而json会为每一行重复字段名?此外,大小差异不会出现在您自己的列表中:187584246 (csv) > 159802082 (json)。 标题说 CSV 更大,而问题另有说明? 【参考方案1】:如果您显示一些 csv 和 json 行会更容易。我的猜测是用于分隔值的字符在两个文件中不同,这就是您看到文件大小不同的原因。
关于这个答案的唯一问题是我希望 json 更大。
A;B;C
1;2;3
4;5;6
2x3 = 6 个字符用于分隔值
A:[1,4],
B:[2,5],
C:[3,6]
5x2 + 4 = 14 个字符用于分隔值
这就是为什么如果我们对文件的结构有所了解会更容易。
【讨论】:
【参考方案2】:JSON 这是一个人类可读的文件。它没有优化。
简而言之,JSON 文件将使用 更多字符 和元素来表示与 csv 中相同的数据。
Csv 想法已针对移动数据进行了优化。
例如:
A;B;C
1;2;3
4;5;6
2x3 = 6 characters used to separate the values
A:[1,4],
B:[2,5],
C:[3,6]
5x2 + 4 = 14 characters used to separate the values
【讨论】:
如果问题没有询问为什么 CSV 文件更大,这将是有意义的。标题似乎与给出的数据相关,问题的最后一句没有^^ @KilianKoeltzsch 嘿,你是对的,可能他拼错了问题的标题。感谢您的通知。 其实你是对的。我的解释没有道理。 @KilianKoeltzsch 我在描述中拼错了问题。谢谢指正!以上是关于为啥我的 CSV 比具有相同数据的 JSON 文件大?的主要内容,如果未能解决你的问题,请参考以下文章
我如何在 quicksight 中刷新 csv 数据集而不是替换数据集,因为这会丢失我的计算
为啥Navicat导出为CSV格式比excel和sql格式的快?
为啥用 Pandas 编写时 CSV 文件比 HDF5 文件小?
我认为 PNG 在大小方面比 gif 具有更好的文件压缩率。那为啥我的 PNG 比我的 gif 大?我用pycharm转换文件