Python 如何根据传入的参数从json更改为prettyprintjson呈现程序?

Python 如何根据传入的参数从json更改为prettyprintjson呈现程序?,python,pyramid,Python,Pyramid,我有一个url,叫做example.com,它返回一个json格式的字符串。我希望能够传入一个参数,让我可以漂亮地打印这个json,这样它更可读。我已经通读了,但有些东西不适合我。 以下是我所拥有的: # config config.add_renderer('prettyprintjson', JSON(indent=4)) # view @view_config(route_name='home',renderer='prettyprintjson') def home(request):

我有一个url,叫做example.com,它返回一个json格式的字符串。我希望能够传入一个参数,让我可以漂亮地打印这个json,这样它更可读。我已经通读了,但有些东西不适合我。 以下是我所拥有的:

# 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???

以下是您案例的解决方案:

@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'}

更多信息请参见文档部分。

我看到了该部分,但他们让它看起来比需要的要困难得多。谢谢你的简化!当这里的计时器允许时,我将接受。