Maison > développement back-end > Tutoriel Python > Pourquoi Python « json.loads » renvoie-t-il une erreur « ValueError : Extra Data » ?

Pourquoi Python « json.loads » renvoie-t-il une erreur « ValueError : Extra Data » ?

Mary-Kate Olsen
Libérer: 2024-11-24 15:30:14
original
860 Les gens l'ont consulté

Why Does Python `json.loads` Throw a `ValueError: Extra Data` Error?

Python json.loads affiche une erreur de valeur : données supplémentaires

Lors de la tentative d'extraction de données d'un fichier JSON nommé "new.json" et de le stocker dans un nouveau JSON fichier, il est possible de rencontrer une erreur ValueError: Extra data lors de l'utilisation de json.load().

Comprendre le Erreur

L'erreur suggère qu'il y a des données supplémentaires dans le fichier JSON au-delà de ce qui est attendu. Cela peut se produire lorsque les données JSON ne sont pas correctement formatées ou lorsqu'il y a des caractères de fin à la fin du fichier.

Résolution du problème

Pour résoudre ce problème, assurez-vous que les données JSON dans "new.json" est bien formé. Cela signifie qu'il doit être conforme aux règles de syntaxe JSON, telles que l'utilisation appropriée des guillemets et des accolades. De plus, s'il y a des caractères de fin après la dernière accolade fermante de l'objet JSON, ils doivent être supprimés.

Approche alternative

Au lieu de charger l'intégralité du fichier JSON en une seule fois, une approche alternative consiste à parcourir le fichier ligne par ligne et à charger chaque ligne en tant qu'objet JSON distinct. Cela vous permet de capturer uniquement les lignes contenant des données JSON valides. Voici comment procéder :

tweets = []
with open('new.json', 'r') as file:
    for line in file:
        # skip lines that don't contain JSON objects
        if not line.strip():
            continue

        # try to load the line as JSON
        try:
            tweet = json.loads(line)
        except ValueError:
            # ignore lines that cannot be loaded as JSON
            continue

        # process the valid tweet data
        tweets.append(tweet)
Copier après la connexion

Cette approche ignorera toutes les lignes vides ou ne contenant pas d'objets JSON valides, réduisant ainsi le risque de rencontrer l'erreur de données supplémentaires.

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