如何处理一个 1.5G 的 json

2020-01-30 07:00:33 +08:00
 0bject

json 的数据结构是:

{
  "key1": {
    "key2": [
      { 200 多行各种结构}, 
      { 200 多行各种结构}, 
      { 200 多行各种结构},
      ...1.5G
    ]
  }
}

我想把数组全写进数据库, 服务器是前一阵 Oracle 1C1G 免费的...
在我的 15 年 8g mac 上尝试过 stream-json, 结果奔溃了
我想的最后的方法就是按行读, 可能也只能按行读了...

4770 次点击
所在节点    问与答
29 条回复
lichdkimba
2020-01-30 07:11:12 +08:00
别问 问就是加内存
fuermosi777
2020-01-30 07:12:24 +08:00
我跑一个东西处理 60 多 G 的 json,用 go 自带的 json 包毫无压力
noqwerty
2020-01-30 07:14:39 +08:00
知道结构的话用 jq pipe 进去可以吗
okchum
2020-01-30 07:19:10 +08:00
LZ 我好像约莫着估计你是不是在某海外开车群
sleepm
2020-01-30 07:33:18 +08:00
https://viewer.dadroit.com/
可以查看也可以导出
0bject
2020-01-30 08:17:51 +08:00
@okchum 你...
0bject
2020-01-30 08:20:33 +08:00
@sleepm 我在电脑里也可以查看, 我想用程序读
@noqwerty 谢谢 我去看看
@fuermosi777 学不动了啊 秃顶了庶
Maboroshii
2020-01-30 08:21:34 +08:00
python ijson
gabon
2020-01-30 08:52:44 +08:00
跟我读:bengkui 崩溃
chinvo
2020-01-30 08:56:07 +08:00
在本地直接读进内存,插进库里导出 SQL 然后到服务器上执行
0o0O0o0O0o
2020-01-30 09:17:48 +08:00
rapidjson 这些库有 SAX API
prenwang
2020-01-30 09:37:28 +08:00
学习 elasticsearch 的 bulk , 逐行解析, 每行一个 json 对象,不要整个文件一个对象
matrix67
2020-01-30 09:37:55 +08:00
@gabon 233333
sinv
2020-01-30 10:13:50 +08:00
@okchum #4 好像 约莫着 估计 是不是 某

哈哈哈哈



@0bject
love
2020-01-30 12:18:53 +08:00
整个结构是个 map ?这是什么逗逼设计,没法流式处理
hammer86
2020-01-30 12:24:19 +08:00
@okchum 群号?我朋友想看看是不是同一个群
azh7138m
2020-01-30 12:38:40 +08:00
崩 beng 溃 kui
stream-json 本身没有问题,一般是代码写的不对,为啥不直接给一下代码呢?
wtks1
2020-01-30 12:39:01 +08:00
@love 看起来是电报群的命令行导出数据?
Mutoo
2020-01-30 13:34:50 +08:00
stream-json 边解析边写入数据库,解析完就 GC,只要不要在内存里留副本,不会有问题。
billlee
2020-01-30 13:35:21 +08:00
jackson/jsoniter 有流式处理 API.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/640924

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX