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

  • CrazyMan

    CrazyMan

    14 Mayıs 2008
  • ICON

    ICON

    19 EKİM 2011
  • Murray Winiata

    Murray Winia

    2 ŞUBAT 2009