Google App Engine数据存储区使用Python查询JSON

Chr*_*her 2 python json google-cloud-datastore

如何从python中获取JSON对象以通过Google App Engine数据存储区获取数据?

我在数据存储区中有以下字段的模型:

id
key_name
object
userid
created
Run Code Online (Sandbox Code Playgroud)

现在我想为一个用户获取所有对象:

query = Model.all().filter('userid', user.user_id())
Run Code Online (Sandbox Code Playgroud)

如何从查询中创建JSON对象以便我可以编写它?

我想通过AJAX调用获取数据.

xlm*_*xlm 8

不确定你是否得到了你想要的答案,但你的意思是如何将Query对象中的模型(入口)数据直接解析为JSON对象?(至少那是我一直在寻找的).

我写这个来将Query对象中的条目解析为JSON对象列表:

def gql_json_parser(query_obj):
    result = []
    for entry in query_obj:
        result.append(dict([(p, unicode(getattr(entry, p))) for p in entry.properties()]))
    return result
Run Code Online (Sandbox Code Playgroud)

您可以让您的应用程序通过使用simplejson对其进行编码来响应AJAX请求,例如:

query_data = MyModel.all()
json_query_data = gql_json_parser(query_data)
self.response.headers['Content-Type'] = 'application/json'
self.response.out.write(simplejson.dumps(json_query_data))
Run Code Online (Sandbox Code Playgroud)

您的应用将返回以下内容:

[{'property1': 'value1', 'property2': 'value2'}, ...]
Run Code Online (Sandbox Code Playgroud)

如果这有帮助,请告诉我!