1. ホーム
  2. python

[解決済み] ネストされたdictを繰り返し処理する方法は?

2022-03-03 14:07:49

質問

私は、ネストされた python dictionary データ構造です。そのキーと値を読み込みたい without を使って collection モジュールを使用します。データ構造は以下のようなものです。

d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}}

以下の方法で辞書のキーを読み込もうとしたのですが、エラーが発生しました。

コード

for key, value in d:
    print(Key)

エラー

ValueError: too many values to unpack (expected 2)

そこで、どなたかエラーの理由と、辞書を反復する方法を説明していただけませんか。

どのように解決するのですか?

要求された出力として、コードは次のようになります。

    d = {'dict1': {'foo': 1, 'bar': 2}, 'dict2': {'baz': 3, 'quux': 4}}

    for k1,v1 in d.iteritems(): # the basic way
        temp = ""   
        temp+=k1
        for k2,v2 in v1.iteritems():
           temp = temp+" "+str(k2)+" "+str(v2)
        print temp

の代わりに iteritems() を使用することができます。 items() も同様ですが iteritems() はより効率的で、イテレータを返します。

お役に立てれば幸いです :)