Python 反转大型JSON字典
我有一个JSON字典,包含以下形式的多个条目(大约800万):Python 反转大型JSON字典,python,arrays,json,dictionary,Python,Arrays,Json,Dictionary,我有一个JSON字典,包含以下形式的多个条目(大约800万): {"Some_String": {"Name0": 1, "Name1": 1, "Name42": 2, "Name5": 2, ... }, ...} 它包含用于引用离散命名实体的字符串,以及该字符串引用该名称的次数计数 我想反转映射,使Name0后面跟着引用它的字符串(保持计数)。名称可能出现在多个字符串条目中 {"Name0": {"Some_String": 1, "Some_other_string": 1,... }
{"Some_String": {"Name0": 1, "Name1": 1, "Name42": 2, "Name5": 2, ... }, ...}
它包含用于引用离散命名实体的字符串,以及该字符串引用该名称的次数计数
我想反转映射,使Name0后面跟着引用它的字符串(保持计数)。名称可能出现在多个字符串条目中
{"Name0": {"Some_String": 1, "Some_other_string": 1,... }, ...}
我的问题是:是否有一些JSON功能可以让我高效地做到这一点
我的简单方法是将每个名称添加到一个2D数组中(在找到字符串和计数时将其添加到该数组中)
最初运行速度相当快,但随着数组大小的增加,运行时间减少(线性搜索)
我意识到我可以直接将这些数据添加到一个新的字典中,但我不知道随着字典大小的增加,这是否真的会提高添加新项目的效率
谢谢 类似于
from collections import defaultdict
result = defaultdict(dict)
for somestring, namesdict in initialdata.items():
for name, amount in namesdict.items():
result[name][something] = amount
可以,但是有了800万项,现在可能是查看数据库的时候了。这将是将JSON数据放入关系数据库的完美情况。JSON只是一种序列化格式,一种将数据描述为文本的方式。确实没有任何“JSON功能”来更改数据。这是Python 2还是Python 3?@Tomalak,谢谢,我们将研究如何将其变成数据库。@RemcoGerlich Python 3。我想它可能没有什么功能,就像我自己看起来的那样,我希望可能有一些更像python的方法来做我尝试过的事情,这样会更有效率。谢谢-我可能会查看数据库。
from collections import defaultdict
result = defaultdict(dict)
for somestring, namesdict in initialdata.items():
for name, amount in namesdict.items():
result[name][something] = amount