Maison >développement back-end >Tutoriel Python >Comment extraire plusieurs objets JSON d'un seul fichier : une solution pythonique
Extraire plusieurs objets JSON à partir d'un seul fichier
Lorsque vous rencontrez un fichier JSON contenant de nombreux objets JSON, il est essentiel d'avoir une approche globale pour extraire des données spécifiques. Cet article examine une solution pour extraire les valeurs « Horodatage » et « Utilité » d'un tel fichier.
La structure de fichier JSON fournie présente des objets JSON empilés. Pour analyser et récupérer les données souhaitées, pensez à utiliser la fonction json.JSONDecoder.raw_decode. Cette fonction permet le décodage de chaînes JSON arbitrairement grandes tout en respectant les contraintes de mémoire.
Cependant, il est important de noter que le module Python json n'accepte pas les chaînes avec un espace en préfixe. Ainsi, une expression régulière est utilisée pour rechercher le premier caractère autre qu'un espace, qui sert de point de départ à l'analyse.
Vous trouverez ci-dessous une solution révisée qui résout ce problème :
<code class="python">from json import JSONDecoder, JSONDecodeError import re NOT_WHITESPACE = re.compile(r'\S') def decode_stacked(document, pos=0, decoder=JSONDecoder()): while True: match = NOT_WHITESPACE.search(document, pos) if not match: return pos = match.start() try: obj, pos = decoder.raw_decode(document, pos) except JSONDecodeError: # do something sensible if there's some error raise yield obj</code>
L'extrait de code révisé analyse efficacement les objets JSON empilés dans le document donné, renvoyant chaque objet au fur et à mesure qu'il le rencontre. Cette approche évite les limitations de l'analyse JSON traditionnelle, la rendant adaptée à la gestion de fichiers JSON volumineux et potentiellement complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!