Скажем, у меня есть модель, как этотПревращение GqlQuery результирующего набора в словарь питона
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/что угодно.
Надеюсь, я ответил на этот вопрос по аналогичному вопросу - [см. Здесь] (http://stackoverflow.com/questions/2114659/how-to-serialize-db-model-objects-to-json/5788453# 5788453). – jaffamcneill 2011-04-30 18:41:23