Apabila cuba mengekstrak data daripada fail JSON bernama "new.json" dan menyimpannya ke dalam JSON baharu fail, adalah mungkin untuk menghadapi ValueError: Ralat data tambahan semasa menggunakan json.load().
Ralat menunjukkan bahawa terdapat data tambahan dalam fail JSON melebihi apa yang dijangkakan. Ini boleh berlaku apabila data JSON tidak diformatkan dengan betul atau apabila terdapat aksara tertinggal di hujung fail.
Untuk menyelesaikan isu ini, pastikan data JSON dalam "new.json" dibentuk dengan baik. Ini bermakna ia harus mematuhi peraturan sintaks JSON, seperti penggunaan tanda petikan dan pendakap yang betul. Selain itu, jika terdapat sebarang aksara mengekor selepas pendakap penutup terakhir objek JSON, ia mesti dialih keluar.
Daripada memuatkan keseluruhan fail JSON sekaligus, pendekatan alternatif adalah untuk melelar ke atas fail baris demi baris dan memuatkan setiap baris sebagai objek JSON yang berasingan. Ini membolehkan anda menangkap hanya baris yang mengandungi data JSON yang sah. Begini cara anda boleh melakukannya:
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)
Pendekatan ini akan melangkau mana-mana baris yang kosong atau tidak mengandungi objek JSON yang sah, mengurangkan kemungkinan menghadapi ralat Data Tambahan.
Atas ialah kandungan terperinci Mengapa Python `json.loads` Membuang Ralat `ValueError: Extra Data`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!