Для решения задачи можно использовать модуль json и функциональное программирование с помощью генераторов списка.
- Открываем файл json и загружаем его содержимое в переменную data с помощью метода load модуля json.
- Создаем генератор списка, который фильтрует элементы списка data и оставляет только те, у которых значение ключа club равно "noclub". Для этого используем функцию filter вместе с лямбда-функцией.
- Для каждого элемента, оставшегося после фильтрации, создаем новый словарь, содержащий ключи "player" и "club", и значения из соответствующих ключей исходного словаря. Для этого используем функцию map вместе с лямбда-функцией.
- Записываем полученные словари в новый файл json с помощью метода dump модуля json.
Вот код на Python:
import json
# Открываем файл json и загружаем его содержимое в переменную data
with open('file.json') as f:
data = json.load(f)
# Создаем генератор списка, который фильтрует элементы списка data и оставляет только те, у которых значение ключа club равно "noclub"
filtered_data = filter(lambda x: x['club'] == 'noclub', data)
# Для каждого элемента, оставшегося после фильтрации, создаем новый словарь, содержащий ключи "player" и "club", и значения из соответствующих ключей исходного словаря
result = map(lambda x: {'player': x['player'], 'club': x['club']}, filtered_data)
# Записываем полученные словари в новый файл json
with open('new_file.json', 'w') as f:
json.dump(list(result), f)
Этот код использует минимальную память и максимально быстрый способ обработки данных. Он фильтрует исходный список и создает новый список только с нужными элементами, а затем преобразует каждый элемент в новый словарь.
Пример:
{
"player": 1737372,
"club": 622
},
{
"player": 16384,
"club": 946
},
{
"player": 13643,
"club": 5100088
},
{
"player": 29217875,
"club": "noclub"
},
{
"player": 398227,
"club": 1581
},
{
"player": 12038706,
"club": 907
},
{
"player": 51070655,
"club": "noclub"
В новый файл json вывести:
{
"player": 29217875,
"club": "noclub"
},
{
"player": 51070655,
"club": "noclub"
Умельцы подскажите ?