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可序列化"
答案 0 :(得分:9)
您可以序列化__dict__
的{{1}}属性:
m
In [214]: json.dumps(m.__dict__)
Out[214]: '{"quadruple": 400, "double": 200, "triple": 300}'
使用什么和原因: Use `__dict__` or `vars()`?
对于更复杂的课程,请考虑使用jsonpickle
。
In [216]: json.dumps(vars(m)) Out[216]: '{"quadruple": 400, "double": 200, "triple": 300}'
是一个用于序列化和反序列化的Python库 复杂的Python对象与JSON之间的关系。标准的Python 用于将Python编码为JSON的库,例如stdlib的jsonpickle
,json
和simplejson
只能处理有原型的Python原语 直接JSON等效(例如demjson
s,dict
s,list
,str
s等。int
建立在这些库之上,允许更复杂 要序列化为JSON的数据结构。
强调我的。