Допустим, у меня есть такая модель
class Foo(db.Model):
id = db.StringProperty()
bar = db.StringProperty()
baz = db.StringProperty()
И я собираюсь GqlQuery, как это
foos = db.GqlQuery("SELECT * FROM Foo")
Я хочу взять результаты GqlQuery и превратить в какую-то строку JSON, которой я могу манипулировать на разных языках.
Вот как я это делаю сейчас
Добавить метод к классу Foo , который преобразует его в словарь
def toDict(self):
return {
'id': self.id,
'bar': self.bar,
'baz': self'baz
}
Перебрать результаты GqlQuery и вручную добавить каждый экземпляр Foo в словарь
fooDict = {}
for foo in foos:
fooDict[foo.id] = foo.toDict()
return simplejson.dumps(fooDict)
Мой подход, описанный выше, работает, но он кажется грубым.
Есть ли более чистый, более "питонский" способ справиться с этим?
Конечный формат не обязательно должен быть таким, как я делал выше. Просто это должно быть что-то, что хорошо конвертируется в JSON, чтобы я мог справиться с этим из Javascript / PHP / что угодно.