Maison >développement back-end >Tutoriel Python >Comment extraire plusieurs objets JSON d'un seul fichier : une solution pythonique

Comment extraire plusieurs objets JSON d'un seul fichier : une solution pythonique

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 18:20:02796parcourir

How to Extract Multiple JSON Objects from a Single File: A Pythonic Solution

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn