Daha " daha iyi bir hata iletisi görüntüleme;JSON nesne deşifre" olabilir;
Biraz uzun karmaşık JSON dosyasından veri yüklemek için Python kodu:
with open(filename, "r") as f:
data = json.loads(f.read())
JSON hatası birçok türleri (dize eksik sınırlayıcı, ters, hatalı, vb.), bu güzel yararlı bir mesaj JSON hata bulunduğu satır ve sütun sayısı içeren yazdırır.
Ancak, diğer türleri JSON hatası (dahil olmak üzere klasik bir "virgül kullanarak son maddeye liste" ama başka şeyler de var gibi sermaye doğru/yanlış), Python çıktı sadece:
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
ValueError bu tür için, ne için Python alabilirim nerede JSON hata dosyası mı?
CEVAP
simplejson
modül yerleşik json
modül belirsiz olduğu birçok durumda daha açıklayıcı bir hata verdiğini buldum. Bir öğe sonra virgül olması durumunda örneğin,:
json.loads('[1,2,]')
....
ValueError: No JSON object could be decoded
çok açıklayıcı değil. simplejson
ile aynı operasyon:
simplejson.loads('[1,2,]')
...
simplejson.decoder.JSONDecodeError: Expecting object: line 1 column 5 (char 5)
Çok daha iyi! Diğer ortak hatalar için aynı şekilde True
sermaye gibi.
/ SERİ içinde bazı değişken kullanım i...
İşlevsel bir şekilde özel durumları iç...
Neden daha iyi bir IDE hata ayıklama?...
Dinamik olarak kendi başına 1=1 kullan...
Hangisi daha iyi, ek Açıklamaları, ala...