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!