使用Python编写JSON时如何浏览HTML字符

时间:2012-04-04 20:13:01

标签: python json encoding escaping

我需要一种方便的方法来在发送JSON时在字符串字段中浏览HTML字符。我以为写一个自定义json.JSONEncoder就可以了。我的编码器看起来像这样:

import jinja2, json

class EscapingJSONEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, basestring):
            obj = jinja2.Markup(obj).unescape()
        return json.JSONEncoder.default(self, obj)

我在default中放置了一个调试语句,但它从未出现过,所以我假设编码器在到达我的自定义default实现之前处理字符串编码。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您应该覆盖encode方法,因为不会为字符串数据类型

调用'default'
class EscapingJSONEncoder(json.JSONEncoder):
    def encode(self, obj):
        if isinstance(obj, basestring):
            obj = jinja2.Markup(obj).unescape()
        return json.JSONEncoder.encode(self, obj)