У меня есть большой массив json, в котором перечислены определенные пары значений ключа. Каждый элемент в массиве должен выглядеть следующим образом:
{
"id" : "tmp3269879718695646867",
"owner" : "johndoe",
"x11-display" : ":7",
"x11-authority" : "/run/user/1676/dcv/tmp3269879718695646867.xauth",
"num-of-connections" : 0,
"creation-time" : "2019-05-15T20:05:46.170274Z",
"last-disconnection-time" : "2019-07-19T15:14:37.349168Z"
},
Затем я прикрепляю начальную квадратную скобку и конечную квадратную скобку в конце, чтобы сделать его действительным JSON. Иногда в массиве около 100 элементов. Из-за обновления программного обеспечения, если пользователь не отключился, то ключ времени последнего отключения не отображается на этом выходе. Я хочу сделать l oop для каждого элемента в массиве, но пропустить весь элемент, если ключ времени последнего отключения не существует. Это то, что у меня есть в l oop:
for item in json_array:
session_details = {"owner":None, "num-of-connections":None, "last-disconnection-time":None}
session_details['owner'] = item['owner']
user = item['owner']
session_details['num-of-connections'] = item['num-of-connections']
session_details['last-disconnection-time'] = item['last-disconnection-time']
# Format date
...
. Я бы хотел проверять элемент каждый раз, когда он зацикливается. Примерно так:
for item in json_array:
session_details = {"owner":None, "num-of-connections":None, "last-disconnection-time":None}
session_details['owner'] = item['owner']
user = item['owner']
session_details['num-of-connections'] = item['num-of-connections']
if "last-disconnection-time" in json_array:
session_details['last-disconnection-time'] = item['last-disconnection-time']
else:
print("last-disconnection-time does not exist in this array item")
# Format date
...
Однако я все равно получаю KeyError при запуске скрипта.