Pythonの問題について、自分で答えを考えてみたのですが、エラーになってします。
どこを直せばよいか教えて下さい。
【問題】
辞書の中の辞書の中の辞書、のように階層の深い辞書 target を1段の辞書に変換する関数を書きましょう。
separator 文字列を使って、各階層のキーを繋げます。
入力例:
target: {"foo": {"bar": "baz"}, "hoge": "fuga"}
separator: "_"
出力
{"foo_bar": "baz", "hoge": "fuga"}
【自分の解答】
Python
1def dict_flatten(target, separator): 2 new_dic = {} 3 for key, value in target.items(): 4 print(key, value) 5 while not type(value) == str: 6 key1, value = value.items() 7 key = key + separator + key1 8 new_dic[key] = value
6行目にnot enough values to unpack (expected 2, got 1)とエラーが出ます。
items()関数でvalueを更新していき、文字列になったら終了するという方針です。
itmes()関数を使う2回目以降は、valueは辞書型でないのでしょうか?
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。