Python: как удалить в файле json лишние числа, которых нет в txt-файле

Рейтинг: 0Ответов: 1Опубликовано: 24.02.2023

Есть два файла, один файл в формате json (вес 0,5мб), внутри которого такая информация:

[

  {

    "player": 8888,
    "club": 600

  },

  {

    "player": 4444,
    "club": 502
  },

  {

    "player": 1111,
    "club": 606
  },

  {

    "player": 3333,
    "club": 740
  },

  {

    "player": 2222,
    "club": 520
 }

и так далее

другой файл текстовый (весит 3 мб) и он с таким содержимым:

1111

2222

3333

8888

и так далее

Нужно удалить из файла json те числа, которых нет в текстовом файле. Поиск нало делать именно по "player", но при удалении "club" тоже надо удалять вместе с player.

В данном примере удаляются вторые player и club ("player": 4444 и "club": 502)

Ответы

▲ 1Принят

Нет вопроса, готовые решения не выдаются, могу предложить направление для проработки, под ваши данные может не подойти.

import json
 
#файл в формате json
with open('j.json') as jf:
    l=jf.read()

#файл текстовый
with open ('in.txt') as ifl:
    sf=ifl.read()

j=json.loads(l)

md={el['player']:el['club'] for el in j} #Зависимость club от player
oj=[{'player':int(player),'club':md[int(player)]} for player in sf.split() if int(player) in md.keys()]

#файл в формате json
with open('out.json','w') as ojf:
    json.dump(oj,ojf,indent=3)