似乎字典被 JSON 编码了两次,相当于:
json.dumps(json.dumps({ "color" : "color", "message" : "message" }))
也许您的 Python 框架会自动对结果进行 JSON 编码?试试这个:
def returnJSON(color, message=None):
return { "color" : "color", "message" : "message" }
编辑:
要使用以您想要的方式生成 JSON 的自定义 Pyramid 渲染器,请尝试此操作(基于渲染器文档和渲染器源)。
在启动时:
from pyramid.config import Configurator
from pyramid.renderers import JSON
config = Configurator()
config.add_renderer('json_with_custom_default', JSON(default=json_util.default))
然后你有一个 'json_with_custom_default' 渲染器可以使用:
@view_config(route_name='CreateNewAccount', request_method='GET', renderer='json_with_custom_default')
编辑 2
另一种选择可能是返回一个Response
他的渲染器不应该修改的对象。例如
from pyramid.response import Response
def returnJSON(color, message):
json_string = json.dumps({"color": color, "message": message}, default=json_util.default)
return Response(json_string)