This question already has answers here:
How to make a class JSON serializable
(34个答案)
3年前关闭。
Python的新手,尝试定义一个非常简单的类,该类将包含一些值,然后将其输出为JSON表示法。
我希望看到类似的东西
但是却出现错误:“TypeError:< main 。位于0x0149A3F0的多个对象不是JSON可序列化的”
您can也称为
使用什么以及为什么:
Use `__dict__` or `vars()`?
对于更复杂的类,请考虑使用
强调我的。
(34个答案)
3年前关闭。
Python的新手,尝试定义一个非常简单的类,该类将包含一些值,然后将其输出为JSON表示法。
import json
class Multiple:
def __init__(self, basis):
self.double = basis * 2
self.triple = basis * 3
self.quadruple = basis * 4
m = Multiple(100)
json.dumps(m)
我希望看到类似的东西
{
"double":"200",
"triple":"300",
"quadruple":"400"
}
但是却出现错误:“TypeError:< main 。位于0x0149A3F0的多个对象不是JSON可序列化的”
最佳答案
您可以序列化__dict__
的m
属性:
In [214]: json.dumps(m.__dict__)
Out[214]: '{"quadruple": 400, "double": 200, "triple": 300}'
您can也称为
vars
:In [216]: json.dumps(vars(m))
Out[216]: '{"quadruple": 400, "double": 200, "triple": 300}'
使用什么以及为什么:
Use `__dict__` or `vars()`?
对于更复杂的类,请考虑使用
jsonpickle
。强调我的。