ネストされた辞書の大きなリストについては、キーが含まれているかどうかを確認したいと思います。 それらのそれぞれは、それらのすべてを通じて、この検索がエラー提起Iループので、もしまたは、ネストされた辞書の1を持っていない可能性があります。入れ子になっている辞書の値をチェックしますか?
for Dict1 in DictionariesList:
if "Dict4" in Dict1['Dict2']['Dict3']:
print "Yes"
私のソリューションは、これまでのところです:
for Dict1 in DictionariesList:
if "Dict2" in Dict1:
if "Dict3" in Dict1['Dict2']:
if "Dict4" in Dict1['Dict2']['Dict3']:
print "Yes"
しかし、これは頭痛、醜い、おそらくあまりリソースが有効ではありません。 最初の型の方法でこれを行う正しい方法はありますが、辞書が存在しないときにエラーを発生させることはありませんか?デフォルト値として空の辞書と
驚異的で、テストされ、動作します。非常に感謝しています。早く受け入れます。本当に忍者です。 –
チェーンに 'None'値のキーがあると、最初の提案は失敗します。たとえば、テストは 'Dict1 = {'Dict2':None}'に対しては機能しません。したがって、例外をキャッチすることが最もクリーンな解決策であるようです。 –
@AlexO: '.get()'メソッドを持たないオブジェクトでは失敗します。すべての可能性を説明するのはこのコードの仕事ではありません。明示的に異なる値の型をサポートする必要がある場合を除き、他のバグを示す例外をキャッチしないでください。 –