Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用Python编码JSON时取消显示HTML字符_Python_Json_Encoding_Escaping - Fatal编程技术网

如何在使用Python编码JSON时取消显示HTML字符

如何在使用Python编码JSON时取消显示HTML字符,python,json,encoding,escaping,Python,Json,Encoding,Escaping,在发送JSON时,我需要一种方便的方法来取消显示字符串字段中的HTML字符。我认为编写一个定制的json.jsonecoder就可以了。我的编码器看起来是这样的: import jinja2, json class EscapingJSONEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, basestring): obj = jinja2.Markup(ob

在发送JSON时,我需要一种方便的方法来取消显示字符串字段中的HTML字符。我认为编写一个定制的json.jsonecoder就可以了。我的编码器看起来是这样的:

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中放置了一个debug语句,但它从未出现,因此我假设编码器在到达自定义默认实现之前处理字符串编码


如何实现这一点?

您应该重写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)

你如何使用这门课?