我正在实现我自己的JSONEncoder,以便完全按照需要处理不同的类。不幸的是,我的自定义编码器返回了一些格式不正确的字符串。它们被引号包围,某些字符(引号)被转义。在
请使用以下代码重现该行为:
import json
class CustomEncoder(json.JSONEncoder):
def default(self, givenObject):
#for testing purposes this always returns the same string
str = '{"id":0,"name":"Peter"}'
return str;
class AnyClass(object):
pass
encoder = CustomEncoder()
dummyClass = AnyClass()
#expected output: {"id":0,"name":"Peter"}
print encoder.encode(dummyClass)
#output: "{\"id\":0,\"name\":\"Peter\"}"
我使用的是python2.7。在
我怎样才能防止这种行为?我做错了什么?在
default
应该返回一个对象,而不是一个json块:http://docs.python.org/library/json.html#json.JSONEncoder.default:
而不是
尝试返回一个对象
^{pr2}$如前所述,库获取一个字符串,并通过引用它并转义特殊字符将其编码为JSON。在
相关问题 更多 >
编程相关推荐