dict.get('keyword')メソッドを使用してネストされた辞書に問い合わせています。現在、私の構文は...
M = cursor_object_results_of_db_query
for m in M:
X = m.get("gparents").get("parent").get("child")
for x in X:
y = x.get("key")
ただし、「親」または「子」タグのいずれかが存在しない場合があり、スクリプトが失敗します。get()
キーがフォームに存在しない場合に備えて、デフォルトを含めることができます...
get("parent", '') or
get("parent", 'orphan')
Null
しかし、私が考えることができる、、、または空を含めると、メソッドがないため、呼び出されたとき''
にチェーン.get("child")
が失敗します。''.get("child")
""
.get()
私が今これを解決している方法は、try-except
各.get("")
呼び出しの周りに一連のシーケンシャルを使用することですが、それは愚かでunpythonのようです---デフォルトのリターン"skip"
または"pass"
チェーンをサポートし、深くではなくインテリジェントに失敗する何かがあります-存在しないキーに飛び込みますか?
理想的には、これをフォームのリスト内包表記にしたいと思います。
[m.get("gparents").get("parent").get("child") for m in M]
しかし、親がいないために.get("child")
呼び出しが私のプログラムを終了させる場合、これは現在不可能です。