2015-06-06 14 views
5

En kolay yol olan kodlama sorunlarını çözmek için python2'den python 3'e bir python betiğini yeniden yazmam gerekiyordu. Aynı sözdizimini kullanmak için mysqldb'den pymysql'e geçmek zorunda kaldım. Pymysql'in github [1] sitesine girdim ve aşağıdaki örneklere baktım: Sorgu sonucu bir öğe olduğunda, bir JSON nesnesini döndürdüğünü ancak birden fazla döndüğünde bir liste döndürdüğünü fark ettim.JSON sorguları, bir öğe varsa, neden birden fazla nesne varsa, nesne döndürür?

Her zaman bir listeyi 0, 1 veya hangi öğe sayısı ile döndürmek daha tutarlı olmaz mı? Neden bu şekilde yapılır?

Not: sadece gelen cursorclass parametresini kaldırın pymysql bu davranışı engellemek için: JSON API şartnamesine göre

# Connect to the database 
connection = pymysql.connect(host='localhost',user='user', 
passwd='passwd', db='db', charset='utf8mb4', 
cursorclass=pymysql.cursors.DictCursor) 

[1] https://github.com/PyMySQL/PyMySQL/

cevap

4

, bu davranış, v1, bir kırılma değişiklik nedeniyle .0rc1:

KIRMA DEĞİŞİM: Tekil öz kaynak objeleri hemen yerine dizilerin nesneleri JSON ile temsil edilebilir olmalıdırlar. Bu, istek ve yanıt belgelerinde simetrik gösterimleri, ayrıca PUT/POST istekleri ve PATCH işlemleri olarak sağlar. Ayrıca, toplu işlemleri desteklemeyen (diğer bir deyişle bir nesneye izin verilebilen bir diziye izin vermeyen) uygulamalarını da basitleştirir.

Sen bir göz here

olabilir