GAE,Search API,Documents to JSON序列化

时间:2014-05-25 01:51:17

标签: python json google-app-engine

如何将整个结果集从GAE上的搜索api查询序列化为json?我使用python和标准库。

我得到了我的结果:

index = search.Index(name=Myindex)
query_string = "amount > 0"         
results = index.search(query_string)
json_results = {}

我试图迭代它们并逐位构造json输出,

for i in results:
    x = {'result': 
        {'name' : i.field('name').value,
        'value' : i.field('value').value
        'geo' : i.field('location').value
        }}
    json_results = dict(list(json_results)+list(x))

json.dump(json_results,self.response.out)

但是我对编码非常陌生,只是在我参与这个项目时自学...我在最近几天尝试了各种各样的变化,但没有用。必须有一个简单的方法。

1 个答案:

答案 0 :(得分:0)

您走的是正确的道路,但代码中有一些错误, 我假设你想传回一个有序的词典列表来保存结果。 目前你正在构建一个dicts的词典,而外部词典都共享相同的键"结果"这意味着你最终会得到一个条目。

json_results = []
for i in results:
    x = {'name' : i.field('name').value,
        'value' : i.field('value').value
        'geo' : i.field('location').value}

    json_results.append(x)

self.response.write(json.dumps(json_results,self.response.out))

此外,您还需要在标题中正确设置内容类型。有关正确的类型,请参阅问题What is the correct JSON content type?