我使用以下代码构建了一个大嵌套字典,表示“森林”,这意味着树木的集合:
def create_forest(edges):
"""Given a list of edges [child, parent], return trees. """
trees = collections.defaultdict(dict)
for child, parent in edges:
trees[parent][child] = trees[child]
# Find roots
children, parents = zip(*edges)
roots = set(parents).difference(children)
return {root: trees[root] for root in roots}
此作品通过返回字典来构建图形。我想以相同的方式(获取森林)构建相同类型的图,但是我想在磁盘中使用文件而不是将字典保留在内存中。 有什么方法可以在文件中而不是在字典中构建目录林?如果以后可以将文件的内容转储到字典中,那就太好了。
答案 0 :(得分:0)
这取决于林中的所有值是否都可以json序列化,您可以使用json.load
和json.dump
从文件加载结构并将其转储到文件,如下所示:
import json
forest = {
"ancestro1": {
"ancestor2":
{
"ancestror3": 123,
"ancestor4": 654,
"ancestor5": True}
},
"ancestor6":None
}
with open("file.json","w") as f:
json.dump(forest,f)
with open("file.json","r") as f:
forest = json.load(f)
print(forest)
输出:
{'ancestro1': {'ancestor2': {'ancestror3': 123, 'ancestor4': 654, 'ancestor5': True}}, 'ancestor6': None}
文件内容:
{"ancestro1": {"ancestor2": {"ancestror3": 123, "ancestor4": 654, "ancestor5": true}}, "ancestor6": null}