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)
Run Code Online (Sandbox Code Playgroud)
我希望看到类似的东西
{
"double":"200",
"triple":"300",
"quadruple":"400"
}
Run Code Online (Sandbox Code Playgroud)
但是得到一个错误:"TypeError:< main.在0x0149A3F0处的多个对象>不是JSON可序列化的"
cs9*_*s95 10
您可以序列化以下__dict__属性m:
In [214]: json.dumps(m.__dict__)
Out[214]: '{"quadruple": 400, "double": 200, "triple": 300}'
Run Code Online (Sandbox Code Playgroud)
In [216]: json.dumps(vars(m))
Out[216]: '{"quadruple": 400, "double": 200, "triple": 300}'
Run Code Online (Sandbox Code Playgroud)
使用什么和原因: 使用`__dict__`或`vars()`?
对于更复杂的类,请考虑使用jsonpickle.
jsonpickle是一个Python库,用于将复杂Python对象与JSON进行序列化和反序列化.标准Python库编码的Python成JSON,如STDLIB的json,simplejson和demjson,只能处理有直接JSON等效的Python原语(例如dictS,listS,str英格斯,intS,等).jsonpickle构建在这些库之上,允许将更复杂的数据结构序列化为JSON.
强调我的.
| 归档时间: |
|
| 查看次数: |
5533 次 |
| 最近记录: |