如何根据传入的参数从json更改为漂亮的打印json渲染?

时间:2014-01-27 17:08:24

标签: python pyramid

我有一个网址,称之为example.com,返回一个json格式的字符串。我希望能够传递一个参数,让我可以打印这个json,这样它更具可读性。我已经阅读了the docs,但有些事情并没有让我沉沦。 这就是我所拥有的:

# config
config.add_renderer('prettyprintjson', JSON(indent=4))

# view
@view_config(route_name='home',renderer='prettyprintjson')
def home(request):
  if request.params.get('pretty') == 'true': return {'name':'Fred'} # pretty print
  else: return {'name':'Fred'} # how do I return a non-pretty print version???

1 个答案:

答案 0 :(得分:0)

这是您案例的解决方案:

@view_config(route_name='home', renderer='json')
# It's better to keep non-pretty JSON renderer as a default one
def home(request):
   if request.params.get('pretty'):
       request.override_renderer = 'prettyprintjson'
   return {'name':'Fred'}

文档的Overriding A Renderer At Runtime部分中的详细信息。