python big json数据库加载

chy5wohz  于 2023-04-08  发布在  Python
关注(0)|答案(1)|浏览(106)

我正在做的应用程序需要我加载一个100 MB-1GB的JSON文件。我使用了JSON库,但加载需要很多时间,我试图切换到YAML,但比JSON慢。
那么,有没有一个库(用于转储/加载)比json或其他更适合数据库的文件格式加载更快?

hc8w905p

hc8w905p1#

很久以前我就得到了答案,但忘记了这个问题。
如果有人想做同样的事情,我会这么做:
感谢JonSG,我使用了一段时间的Parquet文件,然后我深入了解了它的工作原理。在此基础上,我创建了自己的代码,使用zstd,这是一种文本压缩算法,它确实保存了大量的存储空间。

from zstd import dumps, loads
from json import loads as jloads, dumps as jdumps
def dump(data, file, level=9):
    data = jdumps(data).encode()
    with open(file, 'wb') as f:
        f.write(dumps(data, level))
def load(file):
    with open(file, 'rb') as f:
        return jloads(loads(f.read()))

测试用例:

  1. 128 mb的json被压缩到6 mb
  2. 89 mb的json被压缩到4- 5 mb

相关问题