Kode python untuk memuat data dari beberapa file JSON yang rumit:
with open(filename, "r") as f:
data = json.loads(f.read())
(catatan: versi kode terbaik harus:
with open(filename, "r") as f:
data = json.load(f)
tetapi keduanya menunjukkan perilaku yang sama)
Untuk banyak jenis kesalahan JSON (pembatas yang hilang, kesalahan backslash dalam string, dll), ini mencetak pesan bermanfaat yang bagus yang berisi baris dan nomor kolom tempat kesalahan JSON ditemukan.
Namun, untuk jenis kesalahan JSON lainnya (termasuk klasik "menggunakan koma pada item terakhir dalam daftar", tetapi juga hal-hal lain seperti kapitalisasi benar / salah), output Python hanyalah:
Traceback (most recent call last):
File "myfile.py", line 8, in myfunction
config = json.loads(f.read())
File "c:\python27\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "c:\python27\lib\json\decoder.py", line 360, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\python27\lib\json\decoder.py", line 378, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Untuk jenis ValueError, bagaimana Anda mendapatkan Python untuk memberi tahu Anda di mana kesalahan dalam file JSON?
json.load(f)
sebagai gantinyajson.loads(f.read())