将嵌套字典转换为fi

2024-04-24 23:47:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字典,我通过从文件中提取并修改值来修改它,现在我想以类似的格式将它放回一个文件中。你知道吗

字典类似于:

d={'a':
    {'c':'something else',
     'd':{'e':'some item'}
    },
   'b':
    {'z':'something else',
     's':{'f':'some item'}
    }
  }

这是一个嵌套项的很长的字典,我猜我必须使用某种递归

我不知道如何去做这个目前,所以我没有现有的代码,从那里我是一个字典到一个文件。你知道吗

我试图得到的最终结果如下,包括换行符和间距:

<a>
    c = something else
    <d>
        e = some item
    </d>
</a>
<b>
    z = something else
    <s>
        f = some item
    </s>
</b>

Tags: 文件代码字典格式someitemelsesomething
1条回答
网友
1楼 · 发布于 2024-04-24 23:47:22
d={'a':
    {'c':'something else',
     'd':{'e':'some item'}
    },
   'b':
    {'z':'something else',
     's':{'f':'some item'}
    }
}

def printer(d, t=0):
    for k, v in d.items():
        if isinstance(v, str):
            yield '\t' * t + '{} = {}'.format(k, v)
        else:
            yield '\t' * t + '<{}>'.format(k)
            yield from printer(v, t=t+1)
            yield '\t' * t + '</{}>'.format(k)

s = '\n'.join(printer(d))
print(s)

印刷品:

<a>
    c = something else
    <d>
        e = some item
    </d>
</a>
<b>
    z = something else
    <s>
        f = some item
    </s>
</b>

相关问题 更多 >