Как отфильтровать список в словаре по ключу и значениям? - PullRequest
2 голосов
/ 05 февраля 2020

У меня есть очень большой словарь со списками в нем, который называется traffi c. Вот небольшой пример моего словаря:

{'redlights': [{'id': 32,
'userid': '3',
'time': '2013-09-T17:12:00+05:00',
'calls': 1,
'crossings': '0',
'bad_behaviour': '0',
'senior': False,
'cat': False,
'dog': True,
'hitrun': 'David Williams'},
{'id': 384,

Итак, я назвал его привет в качестве теста. Я хочу, чтобы все ключи в списке подсвечивались надписью «старший» со значением «Ложь». Сначала я попробовал это понимание, чтобы получить все ключи со старшим в нем:

hello = traffic['redlights']
new = {key: value for key, value in hello.items() if key == senior}

Но потом я получил эту ошибку: AttributeError: у объекта 'list' нет атрибута 'items'

Возможно, потому что это список, но я не знаю, как получить ключи со старшим значением false. Это должно быть в списке красных фонарей, потому что другие списки не актуальны. Как мне сделать это в понимании слова?

1 Ответ

1 голос
/ 05 февраля 2020

hello это не словарь, это список (словарей) и списки не имеют items. Вы должны перебирать каждый из словарей в списке. Этот пример получит id каждого словаря с senior=False.

res = [d['id'] for d in hello if not d['senior']]
...