Python json yükü

Python işlevleri ve meth

Birçok geliştirici, bir programdaki verileri bir JSON dosyasında depolar; diğer programlar, JSON ile çalışmayı gerektiren API'lere başvurur. Aslında, JSON veya Python eşdeğeri sözlükler için bir kullanım örneği bulmakta sorun yaşamayacaksınız.

JSON verileriyle çalışırken bir JSONDecodeError ile karşılaşabilirsiniz. Bu kılavuzda, JSONDecodeError'ın nedenleri ve bu hatanın nasıl düzeltileceği hakkında konuşacağız.




Python JSONDecodeError

Python JSONDecodeError, yöntemle ilgili bir sorun olduğunu gösterir. JSON verilerinizin biçimlendirildiği yer. Örneğin, JSON verilerinizde küme parantezi veya değeri olmayan bir anahtar olabilir veya başka bir sözdizimi parçası eksik olabilir.

Bir JSONDecodeError'ı tamamen düzeltmek için, sorunun ne olduğunu görmek için bir JSON dosyasına gitmeniz gerekiyor. Gelecekte birden fazla sorunla karşılaşacağınızı tahmin ediyorsanız, JSONDecodeError'unuzu işlemek için bir try…except bloğu kullanmak isteyebilirsiniz.

JSONDecodeError anahtar sözcüğünün ardından, aşağıdakileri açıklayan kısa bir açıklama görmelisiniz. hatanın nedeni.

Doğru biçimlendirilmiş tüm JSON'lar şöyle görünmelidir:

{ "anahtar": "değer" }

“değer” liste, dize veya başka bir JSON nesnesi gibi herhangi bir geçerli JSON değeri olabilir.




Örnek Senaryo

JSON nesnelerinin bir listesini depolayan bir program oluşturuyoruz. bir işletmedeki çalışanlara hangi bilgisayarların verildiğini temsil eder. Her JSON nesnesi şöyle görünmelidir:

Katılımcıların %81'i, bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleştirin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan daha az zaman harcadı.

Bu JSON nesnelerini Equipment.json adlı bir dosya. Dosya yalnızca bir giriş içeriyor:

[ { "name": "Laura Harper", " Equipment_id" "309" } ]

Bu verileri programımıza okumak için json modülünü kullanabiliriz:

json'u open("equipment.json") ile dosya olarak içe aktarın: data = json.load(file) print("Ekipman verileri başarıyla alındı.")

Önce bir JSON dosyasını okumak için kullandığımız json modülünü import ediyoruz. Ardından, JSON dosyamızın içeriğini okumak için bir open() ifadesi kullanırız. Konsola, with ifademiz çalıştığında ekipman verilerinin alındığını bildiren bir mesaj yazdırırız.


Kodumuzu çalıştıralım ve ne olduğunu görelim:

Geri izleme (en son çağrı): Dosya "", satır 2,  Dosya "/usr/lib/python3.8/json/__init__.py", satır 293, yükte dönüş yükleri(fp.read(), Dosya "/usr/lib/python3.8/json/__init__.py", satır 357, yüklerde dönüş _default_decoder.decode(s) Dosyası "/usr/lib/python3.8/ json/decoder.py", satır 337, kod çözme nesnesinde, end = self.raw_decode(s, idx=_w(s, 0).end()) Dosya "/usr/lib/python3.8/json/decoder. py", satır 353, raw_decode nesnesinde, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: ':' sınırlayıcı bekleniyor: satır 4 sütun 16 (char 47

Kodumuz uzun bir hata döndürüyor. Python'un hatamızın nedenini JSONDecodeError teriminden sonra açıkladığını görebiliriz.




Çözüm

Bizim JSONDecodeError, JSON verilerimizde iki nokta üst üste (:) eksik olduğunu söylüyor. Bu iki nokta üst üste 16. sütunda dördüncü satırda görünmelidir. Equipment.json dosyamızdaki bu veri satırına bakarsak, JSON'umuzun geçersiz olduğunu görebiliriz:

"equip_id" "309",

Kodumuzda iki nokta üst üste eksik. Bu hatayı düzeltmek için iki nokta üst üste eklemeliyiz:

Verilerimizin temsil edilme şekliyle ilgili sorunu çözdüğümüze göre, programımızı yeniden çalıştırmayı deneyebiliriz:

Ekipman verileri başarıyla alındı.

Kodumuz başarıyla yürütülüyor .

Alternatif olarak, başka bir biçimlendirme sorunuyla karşılaşırsak kodumuzun hemen bir hata döndürmemesi için bu sorunu çözmek için bir try…except işleyici kullanabiliriz:

json'u içe aktarma deneyin: open("equipment.json") ile dosya olarak: data = json.load(file) print(" Ekipman verileri başarıyla alındı.") hariç json.decoder.JSONDecodeError: print("Ekipman verilerine erişimde bir sorun oluştu.")

JSON verilerimizde bir hata varsa , bu program şunu döndürür:

Bir sorun oluştu ekipman verilerine erişim.

Aksi takdirde, program verileri okuyacak ve ardından konsolda aşağıdaki metni gösterecektir:

Ekipman verileri başarıyla alındı.



Sonuç

Python JSONDecodeError, ilgili bir sorun olduğunu gösterir. bir JSON nesnesinin nasıl biçimlendirildiği. Bu hatayı düzeltmek için hata mesajını okumalı ve JSON verilerinizi düzeltmede size yol göstermesi için kullanmalısınız. Alternatif olarak, hatayı yakalamak ve işlemek için try…except bloğunu kullanabilirsiniz.


Python kodlaması hakkında daha fazla bilgi edinmek mi istiyorsunuz? Python Nasıl Öğrenilir kılavuzumuzu okuyun. Python'u nasıl öğreneceğiniz konusunda uzman tavsiyesi ve size yardımcı olacak öğrenme kaynaklarının bir listesini bulacaksınız. bilginizi geliştirin.





Python json yükü: StackOverflow Questions

Tutorials