我想从mongo查询加载一个JSON对象,访问该对象的一部分,然后将其序列化并发送到Web客户端。我可以让Web客户端工作而不是python端。任何例子都会很棒......
请求是像这样的序列化JSON对象
{"page":"home"}
mongo查询结果将是这样的,但每个" home","你好"等等中有更多的键和值。
{ "_id" : ObjectId("5a8838782430d5ae7526e9eb"), "home" : { "next_page" : "/stats"}, "hello" : { "next_page" : "/home" }, "stats" : { "next_page" : "/hello" } }
views.py代码包括这个,我提供伪代码。
@view_config(route_name='nav_route', renderer='json')
def content(request):
page_name=request.page #that is, I want page_name="home"
mongo_json=mongo_query(woof) #load and parse the above query
page_nav=mongo_json[page_name] #get the part for "home"
return {'nav': page_nav}
更新:通过反馈,这现在有效 - 干杯!
@view_config(route_name='rachel_content', renderer='json')
def rachel_content(request):
page=request.json_body['page']
result=db.rachel.find_one()
return { 'rachel' : json.dumps(result[page])}
(雷切尔以复制者的名字命名)
答案 0 :(得分:0)
我建议你只需要转储JSON数据。我倾向于默认使用simplejson包,因此会将其添加到文件的顶部。
import simplejson as json
然后简单地告诉它使用dumps
函数将您的字典对象转储为JSON字符串:
return {'nav': json.dumps(page_nav)}
我相信你可以对built-in JSON library做同样的事情,如果你不想/不能安装simplejson