跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 如何处理一个 1.5G 的 json
未分類
11 3 月 2020

如何处理一个 1.5G 的 json

如何处理一个 1.5G 的 json

資深大佬 : 0bject 53

json 的数据结构是:

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

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

大佬有話說 (29)

  • 資深大佬 : lichdkimba

    别问 问就是加内存

  • 資深大佬 : fuermosi777

    我跑一个东西处理 60 多 G 的 json,用 go 自带的 json 包毫无压力

  • 資深大佬 : noqwerty

    知道结构的话用 jq pipe 进去可以吗

  • 資深大佬 : okchum

    LZ 我好像约莫着估计你是不是在某海外开车群

  • 資深大佬 : sleepm

    https://viewer.dadroit.com/
    可以查看也可以导出

  • 主 資深大佬 : 0bject

    @okchum 你…

  • 主 資深大佬 : 0bject

    @sleepm 我在电脑里也可以查看, 我想用程序读
    @noqwerty 谢谢 我去看看
    @fuermosi777 学不动了啊 秃顶了庶

  • 資深大佬 : Maboroshii

    python ijson

  • 資深大佬 : gabon

    跟我读:bengkui 崩溃

  • 資深大佬 : chinvo

    在本地直接读进内存,插进库里导出 SQL 然后到服务器上执行

  • 資深大佬 : 0o0O0o0O0o

    rapidjson 这些库有 SAX API

  • 資深大佬 : prenwang

    学习 elasticsearch 的 bulk , 逐行解析, 每行一个 json 对象,不要整个文件一个对象

  • 資深大佬 : matrix67

    @gabon 233333

  • 資深大佬 : sinv

    @okchum #4 好像 约莫着 估计 是不是 某

    哈哈哈哈

    @0bject

  • 資深大佬 : love

    整个结构是个 map ?这是什么逗逼设计,没法流式处理

  • 資深大佬 : hammer86

    @okchum 群号?我朋友想看看是不是同一个群

  • 資深大佬 : azh7138m

    崩 beng 溃 kui
    stream-json 本身没有问题,一般是代码写的不对,为啥不直接给一下代码呢?

  • 資深大佬 : wtks1

    @love 看起来是电报群的命令行导出数据?

  • 資深大佬 : Mutoo

    stream-json 边解析边写入数据库,解析完就 GC,只要不要在内存里留副本,不会有问题。

  • 資深大佬 : billlee

    jackson/jsoniter 有流式处理 API.

  • 資深大佬 : qiayue

    https://github.com/lemire/simdjson 解析速度 2.2GB/s

  • 資深大佬 : hoyixi

    流处理应该没问题,看看是不是库的参数没调对。

    此外,JSONStream 也可以试试

  • 主 資深大佬 : 0bject

    @Mutoo 那可能是我没用对 我再去试试
    @sinv 你是哪个司机。。。
    @gabon 哈哈哈
    @hammer86 这又一个司机?
    @azh7138m 可能是我没用对 我再去试试
    @qiayue 谢谢
    @0o0O0o0O0o 谢谢
    @Maboroshii 谢谢
    @prenwang 谢谢
    多谢各位 新名词太多了 我去用 stream-json 再试试 然后我来贴代码

  • 資深大佬 : 20015jjw

    新的 mac pro 1.5t 内存能派上用场了..?
    (单位不一样

  • 主 資深大佬 : 0bject

    @azh7138m
    @Mutoo
    我把代码贴上了 谢谢

  • 資深大佬 : eason1874

    按行读的前提是你的数据是按行存,现在显然不是。

    像这种,我不知道有没有现成的轮子。如果让我处理的话,我会按块读取,比如每次读 1MB,正则提取出 JSON 格式字符串(剩下的放到下一块),然后解析。

  • 主 資深大佬 : 0bject

    @eason1874 有道理 如果我不能拿到 里面的一层 看来只能自己写了

  • 資深大佬 : Mutoo

    @0bject 你的问题就是尝试去读整个数组,肯定会内存不足。以下 gist 这是我改的 demo 你可以参考一下。
    https://gist.github.com/mutoo/28667cfe7e9806ae4cfca9f348997f03

  • 主 資深大佬 : 0bject

    @Mutoo 多谢 代码有用
    我是 filter 没用对, https://github.com/uhop/stream-json/wiki/FilterBase#constructoroptions

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具