我正在尝试做的事情似乎不仅应该很简单地完成,而且应该是足够普通的任务,以至于可以使用简单的程序包来完成它。我希望获取一个大型CSV文件(从关系数据库表中导出),并将其转换为JavaScript对象数组。此外,我想将其导出到.json
文件装置中。
CSV示例:
a,b,c,d
1,2,3,4
5,6,7,8
...
所需的JSON:
[
{"a": 1,"b": 2,"c": 3,"d": 4},
{"a": 5,"b": 6,"c": 7,"d": 8},
...
]
我已经尝试了几个节点CSV解析器,流媒体,自称CSV到JSON的库,但是似乎无法获得想要的结果,或者如果文件较小,它是否可以工作。我的文件大小接近1
GB,约有4000万行(这将创建40m个对象)。我希望它将需要流输入和/或输出以避免内存问题。
这是我尝试过的软件包:
我正在使用Node
0.10.6,希望就如何轻松实现这一目标提出建议。最好自己滚动,但我不确定从Node的所有流功能开始,尤其是因为它们在0.10.x中更改了API。
尽管这还不是一个完整的答案,但是您可以将解决方案基于https://github.com/dominictarr/event-
stream
。自述文件的改编示例:
var es = require('event-stream')
es.pipeline( //connect streams together with `pipe`
process.openStdin(), //open stdin
es.split(), //split stream to break on newlines
es.map(function (data, callback) { //turn this async function into a stream
callback(null
, JSON.stringify(parseCSVLine(data))) // deal with one line of CSV data
}),
process.stdout
)
之后,我希望每行上都有一堆字符串化的JSON对象。然后,需要将其转换为数组,您可以使用该数组并将其追加,
到每行的末尾,在最后一行将其删除,然后在文件的开头和结尾处添加[
和]
。
parseCSVLine
必须将功能配置为将CSV值分配给正确的对象属性。在传递文件的第一行之后,可以很容易地做到这一点。
我确实注意到该库未在0.10上进行测试(至少没有在Travis上进行测试),所以请当心。也许npm test
自己在源上运行。
问题内容: 我有一个100M的CSV文件(实际上是许多单独的CSV文件),总计84GB。我需要将其转换为具有单个float数据集的HDF5文件。我在测试中使用 h5py 时没有任何问题,但是现在我无法在没有内存不足的情况下完成最终数据集。 如何在不必将整个数据集存储在内存中的情况下写入HDF5?我期望这里有实际的代码,因为它应该很简单。 我只是在研究 pytables ,但看起来数组类(与HDF5
问题内容: 有谁知道是否有可以让我将XLS最好转换为JSON的应用程序? 我还将为CSV转换程序做准备,因为如果周围什么都没有的话,我可能最终不得不写自己。 问题答案: 这对我来说效果很好,不需要上传文件: https://github.com/cparker15/csv-to- json?files=1
问题内容: 我尝试使用json格式的文件作为输入。这是示例数据的片段。 可以在r中使用这种复杂的json格式制作一个csv,以便更平滑地处理数据吗? 例如,有以下基本类别:基本信息照片创建者位置类别网址 可以制作带有basic_information.id,creator.id等子类别类别的csv文件吗? 问题答案: 在研究您的答案时,我在评论中张贴了一些链接,但现在我非常确信这是解决问题的方法。
我应该使用什么API将Java对象转换为CSV。我可以使用google gson将java对象转换为CSV格式吗?
问题内容: 我有一个JSON对象,我将其转换为并在此处进行一些处理。稍后,我想转换相同的缓冲区数据以转换为有效的JSON对象。 我正在研究Node V6.9.1 下面是我尝试过的代码,但是当我转换回JSON却无法打开该对象时遇到了。 所以我尝试使用检查方式打印整个对象 如果我尝试像数组一样读取它 我也尝试解析它抛出 我需要将其视为我创建的真实对象(我的意思是像上面声明的那样)。 请帮忙.. 问题答
我正试图将下面的json转换成java bean,需要你的帮助 Sort.json 我的豆子看起来像 我的测试课是 我看到的错误是 请建议: