Python:将字典存储在多个json文件中

时间:2018-07-06 05:50:45

标签: python python-3.x dictionary

我有一本这样的字典:

{'ahik': [2, 1, 3, 1, 4, 1, 5, 1], 'tyeo': [5, 4, 3, 5, 3, 3, 2], 'abc': [1, 2, 3, 4, 5, 2, 1]....}

由于字典很大,我想将其存储在两个json文件中,两个文件都具有字典的一部分(可以说是50%)。另外,存储后如何取回?

2 个答案:

答案 0 :(得分:4)

有多种分割字典的方法。这是一个。

islice

我们可以将项目转换为元组并使用常规切片,但是由于您的字典“很大”,因此最好使用import json

json.dump(),然后您可以使用json.load()将字典保存到文件中,并使用dict.update()从文件中获取字典。

要合并两个字典,请使用spam1.update(spam2) print(spam1) # {'a': '1', 'c': '3', 'e': '5', 'b': '2', 'd': '4'}

SELECT drvYourTable.TransDate,drvYourtable.explination, drvYourTable.DrAmount, drvYourTable.CrAmount, (Select sum(Nz(DrAmount, 0) - Nz(CrAmount, 0))
        From tblYourtable
        Where tblYourtable.TransDate <= drvYourtable.TransDate
    ) AS Balance
FROM tblYourTable AS drvYourTable;

答案 1 :(得分:1)

首先,您必须将字典转换为键和值的列表,然后将其拆分并转储到两个不同的文件中,

import json
d = {'ahik': [2, 1, 3, 1, 4, 1, 5, 1], 'tyeo': [5, 4, 3, 5, 3, 3, 2], 'abc': [1, 2, 3, 4, 5, 2, 1]}
dlist=list(d.items())
with open("firsthalf.txt","w") as df1, open("secondhalf.txt","w") as df2:
    json.dump(dict(dlist[:len(d)//2]),df1)
    json.dump(dict(dlist[len(d)//2:]),df2)

现在它将字典作为两个半字典存储到两个文件中,现在要从这两个文件中检索它们,我们必须加载并合并这两个字典。

with open("firsthalf.txt","r") as df1, open("secondhalf.txt","r") as df2:
    fh,sh=json.load(df1),json.load(df2)
mydict = fh.copy()
mydict.update(sh)
print(mydict)

输出:

{'abc': [1, 2, 3, 4, 5, 2, 1], 'tyeo': [5, 4, 3, 5, 3, 3, 2], 'ahik': [2, 1, 3, 1, 4, 1, 5, 1]}