如何在使用Python编码JSON时取消显示HTML字符
在发送JSON时,我需要一种方便的方法来取消显示字符串字段中的HTML字符。我认为编写一个定制的json.jsonecoder就可以了。我的编码器看起来是这样的:如何在使用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
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)
你如何使用这门课?