首页 > 解决方案 > 使用 Json.dumps 使用带有 ndarray 的字典序列化类

问题描述

我有一个用 json 序列化的类对象。以下代码序列化该类,如果没有 ndarray 成员,它可以正常工作。但是,如果我在类中包含 ndarray,我会收到错误,因为 ndarry 需要转换为列表以进行序列化,如此所述。

我有一堂课如下:

class foo_datastructure():
  def __init__(self):
    self.a=0
    self.b=0
    self.c=[]
    self.array_dictinary= {}
   

列表和变量工作正常,但字典部分给出了 ndarray 问题。字典属于以下类型:

self.array_dict[key]={'x':[],'y':[],'z':[]}

现在我想保留我的代码如下转换类:

 def toJSON(self):

    return json.dumps(self, default=lambda o: o.__dict__,
                      sort_keys=True, indent=4)

并将其解码为:

received = (json.loads(Obj, object_hook=lambda d: namedtuple('X', d.keys())(*d.values())))

我怎样才能改变default=lambda o: o.__dict__它也解释了带有数组的字典?

标签: pythonjsonnumpy-ndarray

解决方案


推荐阅读