ホームページ  >  記事  >  バックエンド開発  >  Python の「json.loads」が「ValueError: Extra Data」エラーをスローするのはなぜですか?

Python の「json.loads」が「ValueError: Extra Data」エラーをスローするのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-24 15:30:14854ブラウズ

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

Python json.loads で値エラーが表示される: 余分なデータ

「new.json」という名前の JSON ファイルからデータを抽出し、新しい JSON に保存しようとするとファイルを使用すると、ValueError: Extra data エラーが発生する可能性があります。 json.load().

エラーの理解

このエラーは、JSON ファイルに予想以上の追加データがあることを示しています。これは、JSON データが適切にフォーマットされていない場合、またはファイルの末尾に末尾文字がある場合に発生する可能性があります。

問題の解決

この問題を解決するには、JSON データが次の形式であることを確認してください。 「new.json」は整形式です。これは、引用符や中括弧の適切な使用など、JSON 構文ルールに準拠する必要があることを意味します。さらに、JSON オブジェクトの最後の右中括弧の後に末尾の文字がある場合は、それらを削除する必要があります。

代替アプローチ

JSON ファイル全体を一度にロードする代わりに、代替アプローチを使用します。ファイルを 1 行ずつ反復処理し、各行を個別の JSON オブジェクトとしてロードします。これにより、有効な JSON データを含む行のみをキャプチャできます。その方法は次のとおりです。

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)

この方法では、空の行や有効な JSON オブジェクトが含まれていない行がスキップされ、追加データ エラーが発生する可能性が低くなります。

以上がPython の「json.loads」が「ValueError: Extra Data」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。