python序列化和反序列化对象内的numpy数组

python序列化和反序列化对象内的numpy数组,python,json,numpy,serialization,codec,Python,Json,Numpy,Serialization,Codec,我想获取一个Python对象,并对JSON进行序列化/反序列化。对象内部有numpy数组: class Student(object): name = "" age = 0 major = "" teacher = "" #tuple1 = (1,2,3) #tuple2 = ("a","b","c") ndarr = "" def __init__(self, name, age, major): self.na

我想获取一个Python对象,并对JSON进行序列化/反序列化。对象内部有numpy数组:

class Student(object):
    name = ""
    age = 0
    major = ""
    teacher = ""
    #tuple1 = (1,2,3)
    #tuple2 = ("a","b","c")
    ndarr = ""

    def __init__(self, name, age, major):
        self.name = name
        self.age = age
        self.major = major
我目前正在使用jsonpickle将其序列化为json

frozen = jsonpickle.encode(obj)
print "jsonpickle serialized object: " + frozen
但是,在序列化之后,numpy数组看起来很奇怪:

jsonpickle序列化对象:

{"py/object": "Student.Student", "age": 21, "major": "eecs", "ndarr": {"py/reduce": [{"py/object": "__builtin__.builtin_function_or_method"}, {"py/tuple": [{"py/type": "numpy.ndarray"}, {"py/tuple": [0]}, "b"]}, {"py/tuple": [1, {"py/tuple": [2, 2]}, {"py/reduce": [{"py/type": "numpy.dtype"}, {"py/tuple": ["f8", 0, 1]}, {"py/tuple": [3, "<", null, null, null, -1, -1, 0]}, null, null]}, true, {"py/b64": "2MfF58x/AADYx8XnzH8AAAAAAAAAAAAAAAAAAAAAAAA=\n"}]}, null, null]}, "name": "larry"}
{“py/object”:“Student.Student”,“age”:21,“major”:“eecs”,“ndarr”:“{”py/reduce”:“{”py/object”:“{”内置函数或方法“},{”py/tuple:“{”py/type:“numpy.ndarray”},{”py/tuple:[0]},{”py/tuple:[1,{”py/tuple:[2,2],“py/reduce:“{”py/type:“numpy/type:“numpy.ndarray”},{”py/tuple:“numpy.ndarray”},{”py/tuple:[0],{,“也许这篇文章可以帮助: