SORU
15 ŞUBAT 2013, Cuma


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
19 ŞUBAT 2013, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • Pocketnow

    Pocketnow

    14 EKİM 2007
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006