Я провожу опрос вложенного словаря, используя метод 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")
Однако иногда один из "родительских" или "дочерних" тегов не существует, а мой script терпит неудачу. Я знаю, используя get()
Я могу включить значение по умолчанию в случае, если ключ не существует формы...
get("parent", '') or
get("parent", 'orphan')
Но если я включаю любые Null
, ''
или пустые, о которых я могу думать, цепочка .get("child")
терпит неудачу при вызове ''.get("child")
, так как ""
не имеет метода .get()
.
Теперь я решаю это, используя кучу последовательных try-except
вокруг каждого вызова .get("")
, но это кажется глупым и нереализованным --- есть ли способ возврата по умолчанию "skip"
или "pass"
или что-то, что по-прежнему будет поддерживать цепочку и терпеть неудачу разумно, а не глубоко погружаться в ключи, которые не существуют?
В идеале, мне бы хотелось, чтобы это было понятием в виде формы:
[m.get("gparents").get("parent").get("child") for m in M]
но в настоящее время это невозможно, когда отсутствующий родитель вызывает вызов .get("child")
для завершения моей программы.