金字塔:加载json文件并发送部分json对象

时间:2018-03-11 13:17:58

标签: python json mongodb pyramid wsgi

我想从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])}

(雷切尔以复制者的名字命名)

1 个答案:

答案 0 :(得分:0)

我建议你只需要转储JSON数据。我倾向于默认使用simplejson包,因此会将其添加到文件的顶部。

import simplejson as json

然后简单地告诉它使用dumps函数将您的字典对象转储为JSON字符串:

return {'nav': json.dumps(page_nav)}

我相信你可以对built-in JSON library做同样的事情,如果你不想/不能安装simplejson