A pergunta apropriada a fazer aqui seria "Como manter apenas itens específicos no dicionário json
", porque é exatamente isso que é visto nos seus exemplos. É claro que é possível fazê-lo através de outras ferramentas de processamento de texto, mas se estivermos trabalhando com json
, então vamos usar ferramentas adequadas para isso.
Usando o módulo json
do python, podemos ter o pequeno script mostrado abaixo, onde você tem uma lista de itens que deseja manter. Assumindo que seu arquivo de entrada é estruturado com um dicionário json
por linha, podemos ler o arquivo linha por linha e carregar cada linha como dicionário do python. De lá, é o caminho direto para a vitória - repita todas as chaves do dicionário e veja se elas estão na lista de itens que queremos manter; se eles não estiverem nessa lista, mostre-os.
#!/usr/bin/env python
import json,sys
keep = ['tech','original']
with open(sys.argv[1]) as f:
for line in f:
data=json.loads(line)
for key in data.keys():
if key not in keep:
data.pop(key)
json.dump(data,sys.stdout)
print ""
Execução de teste:
$ cat input.json
{"url":"example.com","original":"ex.com","tech":"c"}
{"url":"example1.com","dsd":"sdsd","original":"ex1.com","tech":"d"}
$ ./remove_json_items.py input.json
{"tech": "c", "original": "ex.com"}
{"tech": "d", "original": "ex1.com"}