Условная идиома Pythonic для вашего кода немного устарела, вы не хотите использовать 'is None', ( список вещей, которые Python возвращает как None ), а также, для тестирования вами Nanнужно импортировать математику.Я считаю, что это то, что вы ищете:
import math
if 'value1' in results_dict:
if results_dict['value1']: #is not None just means it exists, so eliminate that
if not results_dict['value1']['limit']: #is None just means not
temp = {'limit':math.nan} #create new dict
results_dict['value1'].update(temp) #update your level 1 nested dict
res.append(math.isnan(results_dict['value1']['limit'])) #correct nan test
else:
res.append(results_dict['value1']['limit'])
else:
res.append(math.isnan(results_dict['value1']['limit'])) #correct test for nan
else:
res.append(math.nan) #correct assignment of nan
См. Также: Назначение переменной NAN в Python
Редактировать: если вы не хотите задавать NANв частности, тогда ваш код может быть значительно упрощен.
if 'value1' in results_dict:
if results_dict['value1']:
if results_dict['value1']['limit']:
res.append(results_dict['value1']['limit'])
else:
res.append('')
else:
res.append('') #correct assignment of nan
На самом деле не совсем понятно, в чем тут вопрос ... Каким должен быть ваш список?Истинные ценности?Значения Dict?