我有一个有很多值的字典,其中一些是子字典,也有子字典等等。
对于每个值,我需要构建一个字符串,将顶级键与一个点连接起来。例如,如果我的 dict 是{'a': 1, 'b': {'c': 2, 'd': 3, 'e': {'f': 4}}},我需要构建以下字符串:
a
b.c
b.d
b.e.f
为此,我编写了以下代码
from types import GeneratorType
def get_parameter(d, top_level_param):
for k, v in d.items():
parameter = top_level_param + '.' + k
if isinstance(v, dict):
get_parameter(v, parameter)
else:
yield parameter
d = {'a': 1, 'b': {'c': 2, 'd': 3, 'e': {'f': 4}}}
for k, v in d.items():
if isinstance(v, dict):
parameter = get_parameter(v, k)
else:
parameter = k
if isinstance(parameter, GeneratorType):
for p in parameter:
print(p)
else:
print(parameter)
但是,输出丢失b.e.f,我不知道为什么。在纸面上,它看起来应该由 返回get_parameter()。
12345678_0001
相关分类