Python’da JSON Yüklerken Karşılaşılan Tırnak Meselesi


Son derece spesifik, basit ancak önemli bir konuda yeniden birlikteyiz.

5 dakika önce bir dalgınlık nedeniyle Python’da basit bir hata yaptım ve sonrasında da bu hatayı 5 dakika içerisinde kaleme almaya karar verdim.

Kodumuz kabaca şöyle:

somevariable = json.loads(self.MESSAGE[1])

Burada uzak sunucudan gelen json biçimindeki bir veriyi içeride saklamaya çalışıyoruz. Karşılaştığımız hata şu:

JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

Hata mesajı aslında oldukça açıklayıcı ancak büyük resme geçelim biz:

JSON biçiminde tek tırnağın (‘) bir anlamı yok. Tek tırnağı yalnızca bir dizinin (string) içinde kullanabilirsiniz. Bir dizinin başında ve sonunda çift tırnak (“) kullanmalısınız. Örnek bir kullanımı aşağıdaki saçma örnekte görebilirsiniz:

{"Katot'un": "pozitif", "diğer yüzü": "negatif"}

Yani şöyle bir JSON mümkün değil:

{'Katot': 'pozitif', 'anot': 'negatif'}

Python’un bize bir diziyi (string’i, umarım doğru kullanıyorumdur) işaretlemek için başında ve sonunda çift tırnak (“) veya tek tırnak (‘) kullanmakta özgür bırakması bazen başka biçimlerle uğraşırken kafa karışıklığı yaratabiliyor.

Bu konuda farklı argümanlarla farklı kullanımları tavsiye eden ustalar var. Python’da ‘naber’ ile “naber” ifadelerinin teknik olarak bir farkı aslında yok. Ancak bütün tavsiyelerin ortak noktası bir standart oturtmak ve tutarlı olmak. Bu şekilde hem sizin için hem de başkaları için kodun kullanımını ve anlaşılırlığını arttırmak.


Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.