0
votes

Besoin de couper certaines informations inutiles d'un fichier JSON et de préserver la structure JSON

J'ai un fichier JSON xxx

ce dont j'ai besoin est de supprimer toutes les lignes à part "ID:" et "Nom:" et conservez la structure JSON. Quelqu'un peut-il conseiller un script Python ou Bash de gérer cela?


1 commentaires

Après avoir chargé JSON qui sera comme dictionnaire il suffit de supprimer une autre touche que vous n'avez pas besoin dict.pop ('Key', aucune) ou dict ["clé" ]


4 Réponses :


-1
votes

// Cachet votre JSON dans Pandas Dataframe

importer des pandas comme pd df = pd.read_json ("votre variable JSON ') res = df.drop (['URL_WHITELIS', 'API_KEY'], AXIS = 1) // Tapez toutes les colonnes avec une virgule ici // Sauf nom et identifiant pd.to_json (res) // stocke votre fichier souhaité


1 commentaires

Il n'est pas nécessaire d'utiliser des pandas pour supprimer les clés JSON



2
votes

Utilisation de Python, vous pouvez d'abord désérialiser le fichier JSON (gamme JSON d'objets) avec json.load , puis filtrez les touches souhaitées avec une compréhension de la liste: xxx

Sortie: xxx

Si nous voulons sérialiser cette liste Python dans un autre fichier de sortie, nous pouvons utiliser json.dump : xxx

.json xxx


0 commentaires

3
votes

avec JQ : xxx


4 commentaires

Ah c'est un outil de ligne de commande pratique. Je dois admettre que je ne l'ai jamais utilisé auparavant. Quel langage de requête utilise-t-il? Cela ressemble à Jmeespath, mais pas tout à fait.


@RoadRunner JQ utilise son propre DSL pour manipuler JSON. Voir Stedolan.github.io/jq/manual


@RoadRunner, vous pouvez aussi aimer JTC (Google Up JTC et JSON - également très puissant processeur JSON J'ai créé un certain temps), en utilisant JTC La solution ressemblerait à: l:' -w ' l:' -PP


Même plus simple: carte JQ '({id, nom})' INPUT.JSON



0
votes

Vous pouvez essayer ceci:

import json

with open('<input filename>', 'r') as f:
    data = json.load(f)

new_data = []
for item in data:
    new_item = {key: value for key, value in item.items() if key == "id" or key =="name"}
    new_data.append(new_item)

with open('<output filename>', 'w') as f:
    json.dump(new_data, f)


0 commentaires