Bazı uzun karmaşık JSON dosyasından veri yüklemek için Python kodu:
with open(filename, "r") as f:
data = json.loads(f.read())
(not: en iyi kod sürümü şöyle olmalıdır:
with open(filename, "r") as f:
data = json.load(f)
ancak ikisi de benzer davranış sergiler)
Birçok JSON hatası türü için (eksik sınırlayıcılar, dizelerde yanlış eğik çizgiler, vb.), Bu, JSON hatasının bulunduğu satır ve sütun numarasını içeren güzel ve yararlı bir mesaj yazdırır.
Bununla birlikte, diğer JSON hatası türleri için (klasik "bir listedeki son öğede virgül kullanmak" ve ayrıca doğru / yanlışı büyük harfle yazmak gibi diğer şeyler dahil), Python'un çıktısı şu şekildedir:
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
Bu tür ValueError için, Python'un JSON dosyasındaki hatanın nerede olduğunu size söylemesini nasıl sağlarsınız?
json.load(f)
bunun yerine yapabilirsinjson.loads(f.read())