Итак, я изучаю, как создать флеш-webservice, и я начал с такого кода.Pythonic Way для сериализации результатов запроса с нестандартными типами для JSON
#...
class Objects(Resource) :
def get(self) :
conn = engine.connect()
query = conn.execute("SELECT * FROM objects")
return {'objects' : [dict(zip(tuple(query.keys()), i)) for i in query.cursor]}
api.add_resource(objects, '/objects')`
#...
, который был хорошо, пока я не наткнулся на стол с полем в базе данных, представленных в виде десятичной, который не было сериализацией с приведенным выше примером.
Так что я пошарил и придумал следующее.
class object(Resource) :
def get(self):
conn = engine.connect()
query = conn.execute("SELECT * FROM objects")
objects = []
for row in query:
object = {}
for key in query.keys() :
if(type(row[key]) is decimal.Decimal) :
object[key] = float(row[key])
else :
object[key] = row[key]
objects.append(object)
return {'objects': objects}
Этот код работает нормально, но моя внутренность говорит мне, что должен быть лучший способ его написать. Будучи новичком в python, однако я не уверен, как продолжить ...
Как можно было бы рассмотреть вышеупомянутый случай в более питоническом ключе, используя возможности pythons и библиотеки классов?
использование dict понимание. Но больше всего используйте http://codereview.stackexchange.com вместо этого сайта. –
Мне не было известно о сайте codereview.stackexchange.com Я буду использовать его в будущем для этого типа вопросов. – earnshae