値をリスト、Unicode文字列、dicts、bool、intの混合ですべてのキーと値のペアを持つ1次元のdictを生成するdictを繰り返したい。私は関連する値が辞書であるキーを保持することには気をつけません。dictを混合値でフラットなdictに変換する
再帰関数を試しましたが、いくつかの手順がありません。おそらく私は.update()
または+=
をどこかで使う必要がありますか?私のトップレベルの辞書の値の
def unravel(data):
resultsdict = {}
for k in data:
if isinstance(data[k],dict):
unravel(data[k])
else:
resultsdict[k] = data[k]
例:
<type 'list'>
<type 'bool'>
<type 'dict'>
<type 'unicode'>
<type 'bool'>
<type 'unicode'>
<type 'dict'>
<type 'int'>
<type 'unicode'>
あなたがダイビングするたびに表示されますこの再帰関数には、resultsdict = {}で辞書をリセットしています。それは問題かもしれないと思いますか? – Adib
あなたのディクテーションに含まれる他のすべてのディクテーションについては、そのディクテーションの内容を構造のルートレベルまで移動したいですか?例えば。 '{'b': 'c'、 'd': 'e'}'は '{'b': 'c'、 'd': 'e'}'になります。 – poke
@あなたは正しいです –