在python中为应用程序引擎生成json

在python中为应用程序引擎生成json,python,json,google-app-engine,Python,Json,Google App Engine,我对python有些陌生,我想知道在循环中生成json的最佳方法是什么。我可以在循环中把一堆字符串混合在一起,但我相信有更好的方法。这里有更多的细节。我正在使用python中的AppEngine创建一个返回json作为响应的服务 例如,有人向服务请求一个用户记录列表。服务查询记录后,需要为找到的每个记录返回json。也许是这样的: {records: {record: { name:bob, email:blah@blah.com, age:25 } }, {record: { name:st

我对python有些陌生,我想知道在循环中生成json的最佳方法是什么。我可以在循环中把一堆字符串混合在一起,但我相信有更好的方法。这里有更多的细节。我正在使用python中的AppEngine创建一个返回json作为响应的服务

例如,有人向服务请求一个用户记录列表。服务查询记录后,需要为找到的每个记录返回json。也许是这样的:

{records: 
{record: { name:bob, email:blah@blah.com, age:25 } },
{record: { name:steve, email:blah@blahblah.com, age:30 } }, 
{record: { name:jimmy, email:blah@b.com, age:31 } }, 
}

请原谅我的json格式不好。谢谢你的帮助。

创建自己的JSON是愚蠢的。使用
json
simplejson
进行此操作

>>> json.dumps(dict(foo=42))
'{"foo": 42}'
这里几步

首次导入simplejson

from django.utils import simplejson
然后创建一个函数,返回带有适当数据头的json

def write_json(self, data):
  self.response.headers['Content-Type'] = 'application/json'
  self.response.out.write(simplejson.dumps(data))
然后从post或get处理程序中,创建一个包含所需数据的python字典,并将其传递到所创建的函数中

 ret = {"records":{
   "record": {"name": "bob", ...}
   ...
 }
 write_json(self, ret)

我的问题是如何添加到 动态字典?所以foreach 记录在我的记录列表中,添加 记录到字典里

您可能希望创建一个词典列表

records = []
record1 = {"name":"Bob", "email":"bob@email.com"}
records.append(record1)    
record2 = {"name":"Bob2", "email":"bob2@email.com"}
records.append(record2)

然后在appengine中,使用上面的代码将
记录导出为json。

我想你想得太多了。Python有一个JSON库,只需生成数据结构并将其传递给
JSON.dumps
我的问题是如何动态添加到字典中?因此,对于我记录列表中的每条记录,在字典中添加一条记录。由于原始问题特别涉及appengine,值得注意的是django库不是自动可用的。你需要在你的app.yaml中包含对它的引用