Чтобы проверить, существует ли 'b' & 'c'
в 'a' & 'b'
.
test = {
'a': {
'b': [1234],
'c': 'some_value'
},
'd': {
'b': [5678],
'c': ''
}
}
Подход 1: работает, как показано ниже, но не очень хорошая реализация, если количество вложенных словарей огромно. Кроме того, вы не можете точно определить, какой элемент не существует. Скажем, 'c' not in 'a' , 'b' not in 'd' & 'c' not in 'd'
. В этом случае он терпит неудачу во втором операторе (но не сообщает, что 3-й и 4-й операторы также терпят неудачу). Мне нужно получить, а всего этого не существует.
try:
v1 = test['a']['b']
v2 = test['a']['c']
v3 = test['d']['b']
v4 = test['d']['c']
except Exception as err:
print(err)
Подход 2:
for k,v in test.items():
if 'b' not in v:
print("'b' doesn't exist in {}".format(test[k][v]))
if 'c' not in v:
print("'c' doesn't exist in {}".format(test[k][v]))
Approach1
и Approach2
кажутся не очень хорошими . Есть ли другие способы справиться с этим лучше?