查找要附加到json对象的哪个子“键”

时间:2019-05-06 08:16:54

标签: python json

我的任务是为二叉树创建一个序列化函数,给每个节点指定一个类,其中包含值; 'val','left','right'。 “ val”只是节点的名称,“ left”是该当前节点左侧的节点,而“ right”是当前节点右侧的节点。

我决定使用JSON来构造我的序列化返回对象,格式与此类似;

{
    "val":"root",
    "left": { 
        "val":"left",
        "left": {
            "val":"left.left",
            "left":"none",
            "right":"none
        },
        "right":"none"
    },
    "right": {
        "val":"right",
        "left":"none",
        "right":"none"
    }
}

二叉树的结构如下;

           root
          /    \
        left  right
        /
    left.left

我决定使用python从根节点向下遍历每个左节点,并写入val变量,以及子节点及其子节点及其子节点的结构。然后,对于右节点也是如此。

但是,我直到遇到错误才走了这么远。

def serialize(root_node):
    serialized = {}
    serialized["val"] = root_node.val

    if(root_node.left != None):
        current_node = root_node.left
        while current_node.left != None:
            # serialized["root"]["left"]["val"] = current_node.left.val

我应该如何知道我需要深入到整个["left"]["left"]["left"]...的深度?

从注释的代码中可以看到,我显然是在静态地访问val键。我需要能够动态地做到这一点。这怎么可能?

0 个答案:

没有答案