如何将字典转换为嵌套字典?

2024-09-29 23:30:46 发布

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

我的字典如下:

dict1 = {'K7': ['k07 = v07', ''], 'K2': ['k02 = v02', ''], 'K01': ['k2 = v2', 'k02 = v2', ''], 'K3': ['k1 = v1', ''], 'K02': ['k2 = v2', '']}

我正在尝试制作一个嵌套字典,如下所示:

dict1 = [{'K7': {'k07' : 'v07'}}, {'K2': {'k02' : 'v02'}}, {'K01': {'k2' : 'v2','k02' : 'v2'}, {'K3': {'k1' : 'v1'}}, {'K02': {'k2' : 'v2'}}]

这是我尝试过的代码:

 dict2 = []
 for ks,vs in list(dict1.iteritems()):

     vs = filter(None, vs)
     vi1 = [i.split('=', 1)[0] for i in vs]
     vi2 = [i.split('=', 1)[1] for i in vs] 

     for v1, v2 in zip(vi1,vi2):
         dict2.append({ks : {v1 : v2}})

但是,我的输出如下所示:

  dict2 = [{'K7': {'k07' : 'v07'}}, {'K2': {'k02' : 'v02'}}, {'K01': {'k2' : 'v2'}}, {'K01': {'k02' : 'v2'}}, {'K3': {'k1' : 'v1'}}, {'K02': {'k2' : 'v2'}}]

很高兴听到一些建议。提前多谢了。你知道吗


Tags: infork2v2vsv1k3v02
1条回答
网友
1楼 · 发布于 2024-09-29 23:30:46

您可以将dict用于列表理解:

dict1 = {'K7': ['k07 = v07', ''], 'K2': ['k02 = v02', ''], 'K01': ['k2 = v2', 'k02 = v2', ''], 'K3': ['k1 = v1', ''], 'K02': ['k2 = v2', '']}
new_d = [{a:dict(i.split(' = ') for i in b if i)} for a, b in dict1.items()]

输出:

[{'K7': {'k07': 'v07'}}, {'K2': {'k02': 'v02'}}, {'K01': {'k2': 'v2', 'k02': 'v2'}}, {'K3': {'k1': 'v1'}}, {'K02': {'k2': 'v2'}}]

相关问题 更多 >

    热门问题