This topic created in 3025 days ago, the information mentioned may be changed or developed.
有一个 4g 多的 json 文件,格式是:
{
'id': 'xxxxx'
'q' : 'xxxxx'
'a' : 'xxxxx'
},
{
'id': 'xxxxx'
'q' : 'xxxxx'
'a' : 'xxxxx'
}
这样的,用 ijson 怎么打开呢?prefix 路径因为没有顶级键,不会设置啊,然后就报错了
16 replies • 2018-02-08 16:56:52 +08:00
 |
|
1
noe132 Feb 7, 2018
超大文件不适合 JSON 存储。。。。 如果是一个大数组,可以想办法优化成
{...} {...} {...}
的 JSON line 格式去以行去读。或者如果每个对象占用行固定也可以以固定行数去读。。 否则你得把 4G 的文件整体解析到内存里才行。
|
 |
|
2
bazingaterry Feb 7, 2018 via iPhone
已知格式可以手寫 json parser,結合業務需求一點一點讀
|
 |
|
3
wellsc Feb 7, 2018
存到 mongo 里试试
|
 |
|
4
twor Feb 7, 2018
一行一行的读,解析后,扔到数据库,或者保存成其他格式?
|
 |
|
5
fengyj Feb 7, 2018
4G 的 Json.
0.0!!!
|
 |
|
6
MeteorCat Feb 7, 2018 via Android
吓尿了 4G 的数据,解析起来内存应该爆炸了
|
 |
|
7
Lxxyx Feb 7, 2018 via Android
用 Node 处理过 3g 的 json,直接 load,v8 扛不住,后面用的是 stream 的方式,一点一点解析。(供参考)
|
 |
|
8
neocanable Feb 7, 2018
cat yourfile.json | grep -v "{" | grep -v "}," > new_file 新的文件格式就是: 'id': 'xxxxx' 'q' : 'xxxxx' 'a' : 'xxxxx' 'id': 'xxxxx' 'q' : 'xxxxx' 'a' : 'xxxxx' 'id': 'xxxxx' 'q' : 'xxxxx' 'a' : 'xxxxx'
然后一行一行的读吧,很简单
|
 |
|
9
xiaozizayang Feb 7, 2018 via Android
pandas 分段读取 或者 spark 吧
|
 |
|
10
ulala Feb 7, 2018 via iPad
曾经有类似的需求,一个好几 g 的文件,每一行一个 json 对象。写了个 C 程序一行行读入,然后抛到队列里并发用 rapidjson 去解析。速度还是挺快的。
|
 |
|
11
zc666 Feb 8, 2018 via iPad
可以了解下 jq
|
 |
|
12
binux Feb 8, 2018
streaming JSON parser python
|
 |
|
13
KaelSunstrider Feb 8, 2018
一行一行 yield 出来,处理一行就继续 yield 下一行。或则使用 ubuntu 下的行切割命令分成小文件再处理
|
 |
|
14
cout2013mr Feb 8, 2018
要是数组还好,可以一行行来读文件,你要是个整个大对象,key 还没有命名规则的话,真想不到什么好方法。。
|
 |
|
15
UN2758 Feb 8, 2018
谢谢大家了,倒腾来倒腾去发现 json 确实不合适储存大文件,改用 csv 了
|
 |
|
16
xwhxbg Feb 8, 2018
readline,我用 js 读过 5 个多 G 的文件
|