Python Simplejson.dump默认参数不起作用
嗨,我有以下代码:Python Simplejson.dump默认参数不起作用,python,json,simplejson,Python,Json,Simplejson,嗨,我有以下代码: def dah(o): assert False print simplejson.dumps(['string', None, 3, 0], default=dah) 问题是上面的代码应该抛出一个异常——但它没有。它完全忽略了我的默认类 我还尝试使用以下方法: class NoneToEmptyStringEncoder(simplejson.JSONEncoder): """ Json encoder that replaces nulls wi
def dah(o):
assert False
print simplejson.dumps(['string', None, 3, 0], default=dah)
问题是上面的代码应该抛出一个异常——但它没有。它完全忽略了我的默认类
我还尝试使用以下方法:
class NoneToEmptyStringEncoder(simplejson.JSONEncoder):
"""
Json encoder that replaces nulls with empty strings
"""
def default(self, o):
assert False
if o:
return super(NoneToEmptyStringEncoder, self).default(o)
else:
return super(NoneToEmptyStringEncoder, self).default('')
print simplejson.dumps(['string', None, 3, 0], cls=NoneToEmptyStringEncoder)
但它并没有抛出断言错误,它完全忽略了我的行为,并正常工作
我是不是错过了什么 为什么您希望在第一个示例中调用
dah
?那里的一切(列表、字符串、无和整数)都是simplejson所知道的<代码>默认值仅对它不知道的对象类型调用。(顺便说一句,None
被翻译成null
)。请参阅。@WarrenWeckesser,这通常很有用,但OP没有使用Python的json
模块-他们正在使用。差别在最坏的情况下应该是最小的,尽管:-)@TimPeters:没错,但是。尽管如此,为了完整性:@TimPeters哦,这解释了很多,我认为这将在每次使用,而不仅仅是新类型。我将不得不重写不同于的方法。