gpt4 book ai didi

python - 将 GqlQuery 结果集转换为 Python 字典

转载 作者:行者123 更新时间:2023-11-28 17:55:21 25 4
gpt4 key购买 nike

假设我有这样一个模型

class Foo(db.Model):
id = db.StringProperty()
bar = db.StringProperty()
baz = db.StringProperty()

我要像这样进行 GqlQuery

foos = db.GqlQuery("SELECT * FROM Foo")

我想获取 GqlQuery 的结果并将其转换为某种我可以从不同语言进行操作的 JSON 字符串。


这是我现在的做法

  1. Foo 类添加一个方法,将其转换为字典

    def toDict(self):
    return {
    'id': self.id,
    'bar': self.bar,
    'baz': self'baz
    }
  2. 遍历 GqlQuery 结果并手动将每个 Foo 实例添加到字典中

    fooDict = {}

    for foo in foos:
    fooDict[foo.id] = foo.toDict()

    return simplejson.dumps(fooDict)

我上面的方法可行,但感觉有点恶心。

是否有更简洁、更“Pythonic”的方式来处理这个问题?

结束格式不必与我在上面所做的完全相同。它必须是可以很好地转换为 JSON 的东西,这样我就可以从 Javascript/PHP/任何东西处理它。

最佳答案

看看google.appengine.api.datastore .它是 google.appengine.ext.db 构建的较低级别的数据存储 API,它返回 Entity 对象,它是 dict 的子类。您可以使用带有 google.appengine.ext.gql 的 GQL 查询它,或者(我个人的偏好)使用 Query 类,这样您就无需为 GQL 解析器构造要解析的文本字符串。 api.datastore 中的 Query 类的行为与 documented here 完全一样。 (但返回较低级别的实体对象而不是模型实例)。

例如,您上面的查询可以重新表述为“datastore.Query("Foo").all()”。

关于python - 将 GqlQuery 结果集转换为 Python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/212125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com