在Mako中编码JSON?

1 投票
1 回答
3152 浏览
提问于 2025-04-16 05:33

我在使用mako处理json时遇到了一些麻烦。我这样做:

${ to_json( dict( a = 1, b = 2 ) ) }

其中to_json是:

<%!
    import simplejson as json

    def to_json( d ):
        return json.dumps( d )
%>

但是,它没有给我我想要的结果,而是给了我:

{"a": "1", "b": "2"}

它给我的结果是:

{&quot;a&quot;: 1, &quot;b&quot;: 2}

看起来mako在某个地方把双引号(")改成了其他东西。

那我应该怎么做呢?

相比之下,这里有一个测试脚本:

import simplejson as json

print json.dumps( dict( a=1,b=2 ) )

输出结果是:

{"a": 1, "b": 2}

编辑

我把我的函数改成了:

<%!
    import simplejson as json

    def to_json( d ):
        return "{\"a\": 1}"
%>

结果它把双引号(")改成了&quot;,所以看起来这是mako的问题。

1 个回答

2

看起来某个地方有个自动过滤器,所以当我把

${ to_json( dict( a = 1, b = 2 ) ) }

改成

${ to_json( dict( a = 1, b = 2 ) ) | n }

来关闭过滤器的时候,一切就正常了,谢谢。

撰写回答