金字塔:加载 json 的文件并发送 json 对象的一部分
pyramid: load a file of json and send part of the json object
我想从 mongo 查询加载一个 JSON 对象,访问该对象的一部分,然后将其序列化并发送到 Web 客户端。我可以让 Web 客户端工作,而不是 python 端。任何例子都会很棒..
请求是一个像这样的序列化JSON对象
{"page":"home"}
mongo 查询结果是这样的,但是每个 "home"、"hello" 等都有更多的键和值。
{ "_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])}
(雷切尔以复制人的名字命名)
我建议您只需要转储 JSON 数据。我倾向于默认使用 simplejson 包,因此会将其添加到文件顶部。
import simplejson as json
然后简单地告诉它使用 dumps
函数将您的字典对象转储到 JSON 字符串:
return {'nav': json.dumps(page_nav)}
我相信如果你不 want/can 不安装 simplejson
,你可以对 built-in JSON library 做同样的事情
我想从 mongo 查询加载一个 JSON 对象,访问该对象的一部分,然后将其序列化并发送到 Web 客户端。我可以让 Web 客户端工作,而不是 python 端。任何例子都会很棒..
请求是一个像这样的序列化JSON对象
{"page":"home"}
mongo 查询结果是这样的,但是每个 "home"、"hello" 等都有更多的键和值。
{ "_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])}
(雷切尔以复制人的名字命名)
我建议您只需要转储 JSON 数据。我倾向于默认使用 simplejson 包,因此会将其添加到文件顶部。
import simplejson as json
然后简单地告诉它使用 dumps
函数将您的字典对象转储到 JSON 字符串:
return {'nav': json.dumps(page_nav)}
我相信如果你不 want/can 不安装 simplejson
,你可以对 built-in JSON library 做同样的事情