我在Python 3.5中有这个类:
class DataPoint(object):
def __init__(self, time, value):
self.time = time
self.value = value
当我尝试从实例创建一个JSon时,执行:
json.dumps( intance_of_datapoint )
我收到错误:
TypeError: < DataPoint object at 0x0123 > is not JSon Serializable
所以我试图改进课程覆盖 repr 方法,如下所示:
class DataPoint(object):
def __init__(self, time, value):
self.time = time
self.value = value
def __str__(self):
return json.dumps(self.__dict__)
__repr__ = __str__
通过这样做我得到:
TypeError: {"value":52.29, "time":1} is not JSon serializable.
你们能帮我解决原因吗? 我在这里很丢失。
答案 0 :(得分:2)
您需要在python dict中转换您的实例,然后您可以将该dict转储到json.dumps(instance_dict)中。因为,由于json有自己的数据类型,而python用户定义的类无法序列化为json。