Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Saya Mendapat 'ValueError: Data Tambahan' Apabila Menggunakan json.loads Python?

Mengapa Saya Mendapat 'ValueError: Data Tambahan' Apabila Menggunakan json.loads Python?

Linda Hamilton
Linda Hamiltonasal
2024-11-16 09:07:02800semak imbas

Why Am I Getting

Ralat: "ValueError: Data tambahan" Apabila Menggunakan json.loads Python

Apabila menggunakan fungsi json.loads Python untuk menghuraikan fail JSON , anda mungkin menghadapi ralat:

ValueError: Extra data: line 88 column 2 - line 50607 column 2 (char 3077 - 1868399)

Ralat ini menunjukkan bahawa terdapat data tambahan dalam fail JSON yang bukan sebahagian daripada struktur JSON yang sah.

Sebab

Ralat biasanya berlaku apabila fail JSON mengandungi lebih daripada satu objek JSON setiap barisan. json.loads menjangkakan satu objek JSON sebagai input, tetapi jika terdapat kandungan tambahan selepas objek pertama, ia akan menimbulkan ralat "data tambahan".

Contoh JSON

Contohnya, pertimbangkan contoh fail JSON ini:

{"id": 123, "name": "John"}
{
    "id": 456,
    "name": "Jane"
}

Fail ini mengandungi dua objek JSON, tetapi setiap objek tidak berada di tempat yang berasingan barisan. Apabila json.loads menemui objek pertama, ia akan cuba menghuraikannya dan menimbulkan ralat apabila ia mencapai objek kedua.

Penyelesaian

Penyelesaian kepada ralat ini adalah untuk memastikan bahawa setiap objek JSON berada pada barisnya sendiri dalam fail. Ini boleh dilakukan dengan mengedit fail secara manual atau dengan menggunakan alat untuk memformat semula JSON.

Penghuraian Berulang

Jika fail JSON adalah besar dan mengandungi banyak objek JSON , anda juga boleh menggunakan pendekatan berulang untuk menghuraikan fail tanpa memuatkan keseluruhan fail ke dalam memori.

import json

tweets = []
with open('tweets.json', 'r') as file:
    for line in file:
        tweets.append(json.loads(line))

Dalam ini pendekatan, fail diulang baris demi baris, dan setiap baris dihuraikan sebagai objek JSON. Ini mengelakkan menyimpan objek Python perantaraan dan lebih cekap untuk fail besar.

Atas ialah kandungan terperinci Mengapa Saya Mendapat 'ValueError: Data Tambahan' Apabila Menggunakan json.loads Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn