首页 > 解决方案 > Python:将字典存储在多个 json 文件中

问题描述

我有一本这样的字典:

{'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%)。另外,存储后如何检索它?

标签: pythonpython-3.xdictionary

解决方案


有多种方法可以拆分字典。这是一个。

from itertools import islice

spam = {'a': '1', 'b': '2', 'c': '3', 'd': '4', 'e': '5'}
spam1, spam2 = [dict(islice(spam.items(), i, None, 2)) for i in (None, 1)]
print(spam1, spam2)  # {'a': '1', 'c': '3', 'e': '5'} {'b': '2', 'd': '4'}

我们本可以将项目转换为元组并使用常规切片,但由于您的 dict “非常大”,因此使用islice.

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

要合并两个字典,请使用dict.update()

spam1.update(spam2)
print(spam1)  # {'a': '1', 'c': '3', 'e': '5', 'b': '2', 'd': '4'}

推荐阅读