J'ai un fichier JSON 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? P> P>
4 Réponses :
// Cachet votre JSON dans Pandas Dataframe P>
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é p>
Il n'est pas nécessaire d'utiliser des pandas pour supprimer les clés JSON
Utilisation de Python, vous pouvez d'abord désérialiser le fichier JSON (gamme JSON d'objets) avec Sortie: Strong > p> Si nous voulons sérialiser cette liste Python dans un autre fichier de sortie, nous pouvons utiliser .json strong> p> json.load code>
, puis filtrez les touches souhaitées avec une compréhension de la liste: json.dump code>
: p>
avec JQ code>:
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 code> utilise son propre DSL pour manipuler JSON. Voir Stedolan.github.io/jq/manual
@RoadRunner, vous pouvez aussi aimer JTC code> (Google Up
JTC code> et
JSON code> - également très puissant processeur JSON J'ai créé un certain temps), en utilisant JTC La solution ressemblerait à:
Même plus simple: carte JQ '({id, nom})' INPUT.JSON
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)
Après avoir chargé JSON qui sera comme code> dictionnaire code> il suffit de supprimer une autre touche que vous n'avez pas besoin
dict.pop ('Key', aucune) code> ou
dict ["clé" ] code>