文字列に変換リスト要素 - ネストされた辞書を平らに

marcellobello:

私は最低レベルが一つの要素ごとにリストで構成され、ネストされた辞書を持っています。私は、リストから文字列にこのレベルを変更したいです。私はこのような辞書を持っていると仮定します。

dict = {id1:{'key11':['value11'],'key12':['value12']}, id2:{'key21':['value21'],'key22':['value22']}}

どうすれば入手することができますか:

dict = {id1:{'key11': 'value11','key12':'value12'}, id2:{'key21':'value21','key22':'value22'}}

追加の質問:どのように解決策の変更を行い、キーと値が一定のロジックに従っていませんが、各要素は一意であり、あなたがそれらの多くを持っている場合。例えば、以下の例のように:

dictionary = {'ida':{'abc':['def'],'fgh':['ijk'] (...)}, 'idb':{'lmn':['opq'],'rst':['uvw']} (...)}

ありがとうございました!!

注:私は、リスト値を生成するXMLファイルから抽出したテキストに、以前のコードでは、リスト/マップ構造を使用していますので、私はこのような構造を得ます。

get_text = lambda x: x.text
content = [list(map(get_text, i)) for i in content]
カーステン:

この作品:

dictionary = {'id1':{'key11':['value11'],'key12':['value12']}, 'id2':{'key21':['value21'],'key22':['value22']}}

new_dict = {key: {key1:value1[0] for key1, value1 in value.items()} for key, value in dictionary.items()}
new_dict
#{'id1': {'key11': 'value11', 'key12': 'value12'},
# 'id2': {'key21': 'value21', 'key22': 'value22'}}

また、私のような事前に定義された用語を使用していないだろう dict

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=402593&siteId=1