簡體   English   中英

將嵌套字典轉換為文件

[英]convert nested dictionary to file

我有一個字典,我通過從文件中提取並修改值來修改,現在我想把它放回一個類似格式的文件中。

字典類似於以下內容:

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>
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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM