如何编写大型JSON数据?

时间:2016-09-06 00:21:56

标签: python json

我一直在尝试向JSON文件写入大量(> 800mb)的数据;我做了一些相当多的试验和错误来获得这段代码:

def write_to_cube(data):
    with open('test.json') as file1:
        temp_data = json.load(file1)

    temp_data.update(data)

    file1.close()

    with open('test.json', 'w') as f:
        json.dump(temp_data, f)

        f.close()

运行它只需调用函数write_to_cube({"some_data" = data})

现在这个代码的问题在于它对于少量数据来说速度很快,但问题出现在test.json文件超过800mb的情况下。当我尝试更新或添加数据时,需要很长时间。

我知道有外部库,例如simplejsonjsonpickle,我不太清楚如何使用它们。

还有其他方法可以解决这个问题吗?

更新

我不确定这是如何重复的,其他文章对编写或更新大型JSON文件一无所知,而只是说解析。

Is there a memory efficient and fast way to load big json files in python?

Reading rather large json files in Python

以上都不能解决此问题。他们对写作或更新没有任何说法。

1 个答案:

答案 0 :(得分:0)

所以问题是你的操作很长。以下是我通常采用的一些方法:

  1. 优化操作:这很少有效。我不推荐任何可以快速解析json几秒钟的高级库
  2. 更改逻辑:如果目的是保存和加载数据,可能您想尝试其他方法,例如将对象存储到二进制文件中。
  3. 某些Web框架中的线程和回调或延迟对象。在Web应用程序的情况下,有时,操作需要的时间比请求可以等待的时间长,我们可以在后台执行操作(有些情况是:压缩文件,然后将zip发送到用户的电子邮件,通过调用另一个发送短信第三方的api ...)