Python: как удалить в файле json лишние числа, которых нет в txt-файле
Есть два файла, один файл в формате 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 шт):
Автор решения: Oopss
→ Ссылка
Нет вопроса, готовые решения не выдаются, могу предложить направление для проработки, под ваши данные может не подойти.
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)