Новое с pyhton и API, но я пытаюсь собрать большой объем данных с сервера с помощью API. Скрипт работал до сегодняшнего дня, когда я наткнулся на ошибку типа для NoneType. Сделал распечатку данных в a для l oop, чтобы увидеть, где они оказались. Обнаружил виновника, теперь я пытаюсь выяснить, как его пропустить или установить значение по умолчанию.
Для большинства данных я получаю следующий ключ и значение из файла JSON:
элемент: 0: данные: ключ: ключ значения: ключ значения: значение
Но для пары указанных c элементов в JSON я получаю следующее:
элемент: 0: данные: ключ: []
Как заставить мой сценарий пропустить этот указанный ключ c или, по крайней мере, дать ему значение по умолчанию вместо того, чтобы убивать программу и мешать процессу писать в excel из-за ошибки TypeError?
for entry in search["items"]:
info = entry['data']['info']
info1 = entry['data']["info"]
info2 = entry['data']["info"]
info3 = entry['data']["info"]
info5 = entry['data']["info"]
info6= entry['data']["info"]
info7= entry['data']["info"]
info8= entry['data']["info"]
info9= entry['type']
info10= entry["subscription"]['info']
info11= entry["subscription"]["info"]
info12= entry["uid"]
info13= entry["subscription"]["info"]
info14= entry["info"]
info15= entry['gateway']["info"]
info16= entry['gateway']["info"]
info17= entry['gateway']["info"]
info18= entry['labels']
info19= entry['info']
a = int(last_comm or 0)/1000.0
r = (datetime.datetime.fromtimestamp(a).strftime
('%Y-%m-%d %H:%M:%S'))
last_sync = entry["lastSyncDate"]
b = int(last_sync or 0)/1000.0
t = (datetime.datetime.fromtimestamp(b).strftime
('%Y-%m-%d %H:%M:%S'))
webbrowser.open(av + uid + av_end + company)
count +=1
print(f"Site Name: {siteName}\n\ninfo: {info}\tinfo2: {info2} \t"
f"info1: {info1}\tField: {info3}\n\n"
f"Field: {info4}\t"
f"Field: {info}\tField: {signal}\n"
f"Field: {fw}\nField: {device}\nField: {t}\n"
f"Field: {SIM}\tField: {mdn}\nField: {uid}\n"
f"Field: {ipAdd}\nField: {commStat}\n"
f"Field: {serialNumber}\n"
f"Field: {macAdd}\nField: {r}\n"
f"Field: {imei}\n")
Ошибка возникает следующим образом:
info10 = entry ["subscription"] ['info']
TypeError: объект 'NoneType' не может быть подписан