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

Linda Hamilton
Libérer: 2024-10-29 18:20:02
original
742 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!