Я пытаюсь отфильтровать список словарей в Python, используя понимание списка. Я обрабатываю значения None, но продолжаю получать сообщение об ошибке «Объект NoneType не повторяется». Я ожидал, что мой код пропустит значения None, но он все равно выдает ошибку. Как я могу это исправить?
Вот мой код для воспроизведения проблемы:
def process_data(data, key):
return [
{k: [v for v in val if v > 10] for k, val in item.items() if k == key}
for item in data
if item is not None
]
data = [
{'values': [5, 15, 25]},
None,
{'values': [8, 12, 20]},
{'values': None},
{'values': [7, 14, 21]}
]
filtered_data = process_data(data, 'values')
print(filtered_data)
🤔 А знаете ли вы, что...
С Python можно создавать веб-скраперы для извлечения данных из веб-сайтов.
Как говорится в комментариях, вы не обрабатываете None
в 4-м словаре. Не существует исключений для получения значения None
в словаре, только если вместо словаря имеется значение None
. Однако это простое решение. Добавьте еще одно условие в конце строки 3, чтобы убедиться, что val
не является None
. Вот написан новый код.
def process_data(data, key):
return [
{k: [v for v in val if v > 10] for k, val in item.items() if k == key and val is not None}
for item in data
if item is not None
]
.
.
.