Ваша проблема не очень ясна, потому что вы не предоставляете нам входные данные.Вы можете сделать что-то подобное, используя python get.python get return None, если элемент не присутствует в dict.python или короткое замыкание, поэтому первым элементом, который не является None, является return.это решило бы вашу проблему.
list1 = list()
list2 = list()
for item1, item2 in zip(data1, data2):
if 'link' in item1 and 'link' in item2:
item1_to_append = item1.get('link')
or item1.get('details', {}).get('link')
or item1.get('title', {})
or item1.get('description', {})
or item1.get('nav', {}).get('side', {}).get('title')
or item1.get('nav', {}).get('top', {}).get('title')
item2_to_append = item2.get('link')
or item2.get('details', {}).get('link')
or item2.get('title', {})
or item2.get('description', {})
or item2.get('nav', {}).get('side', {}).get('title')
or item2.get('nav', {}).get('top', {}).get('title')
if item1_to_append:
list1.append(item_to_append)
if item2_to_append:
list2.append(item2_to_append)