использование filter() несколько раз на одну переменную

Мне требуется отсортировать json объекты по их категориям внутри каждого объекта, а потом удалить пустые списки которые почему то образовываются, но я не могу сделать два этих действия ибо в цикле список не полный и выдает ошибку если фильтровать на удаление пустых списков, а в не списка, когда я вношу в новый список "testmassive" данные - все происходит хорошо, вот только список обретает вид: [[СПИСОК]]

ТО как это сейчас выглядит: введите сюда описание изображения

то как я хочу чтоб это выглядело: [СПИСОК]

то как это выглядит без фильтра на удаление пустых списков: введите сюда описание изображения

testmassive = []
# Открытие вышесозданного файла и чтение информации
with open('products_first_unsorted.json', encoding='utf-8') as products_json_file:
    json_file = json.load(products_json_file)

for index, value in enumerate(prod_ids, start=0):
    category_filtered_list = list(filter(lambda x: x['category'] == value, json_file))
    # testmassive.append(category_filtered_list)

filtered_list = list(filter(None, testmassive))

# Запись сортированных данных в отдельный файл
with open('products_second_unsorted.json', 'w', encoding='utf-8') as products_json_file:
    json.dump(filtered_list, products_json_file, ensure_ascii=False, sort_keys=False)

как это можно реализовать лучше? например определить переменную без типа, чтобы оно еще раз не оборачивалось в list, или же использовать в одной переменной сразу две фильтрации. Я не знаю. Помогите пожалуйста.


Ответы (0 шт):