擅长:python、mysql、java
<p>最好的选择是重写<code>JSONEncoder.default</code>方法:</p>
<pre><code>class MyJSONEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, uuid.UUID):
return str(o)
return super().default(o)
print( MyJSONEncoder().encode(data) )
</code></pre>
<p>如果您想要字符串化默认编码器无法处理的所有内容,您可以使用以下技巧,尽管我建议您控制要支持的类型</p>
<pre><code>class MyJSONEncoder(json.JSONEncoder):
def default(self, o):
try:
return super().default(o)
except TypeError:
return str(o)
print( json.dumps(data, cls=MyJSONEncoder) )
</code></pre>
<p><strong>文档:</strong><a href="https://docs.python.org/3/library/json.html#json.JSONEncoder.default" rel="nofollow noreferrer">https://docs.python.org/3/library/json.html#json.JSONEncoder.default</a></p>