jsonpickle 的 Python 数组问题

问题描述

在这里有一些价值观。打印数组显示值就好了。 然而,执行 Jsonpickle 显示了一些关于 numpy 和 py/tuple 项目的信息。不知道为什么,并试图清除缓存和重建。那并没有解决问题。有谁知道为什么会发生这种情况?我所有的其他数组都用 jsonpickle 打印得很好。

似乎我指的是一些内存而不是值。

print(test)
[104.97287576678693,99.802264802045,115.59585412670378,103.42889046311696,116.20011484134734]


print(jsonpickle.encode(test))
[{"py/reduce": [{"py/function": "numpy.core.multiarray.scalar"},{"py/tuple": [{"py/reduce": [{"py/type": "numpy.dtype"},{"py/tuple": ["f8",false,true]},{"py/tuple": [3,"<",null,-1,0]}]},{"py/b64": "7lq4mEM+WkA="}]}]},{"py/reduce": [{"py/function": "numpy.core.multiarray.scalar"},{"py/tuple": [{"py/id": 2},{"py/b64": "+eB3TljzWEA="}]}]},{"py/b64": "SNhYeSLmxeA="}]}]},{"py/b64": "1Sn88HLbWUA="}]}]},{"py/b64": "/cF6rs4MXUA="}]}]}]

解决方法

错误:

jsonpickle.encode(list(np.array([1,2,3,4])))

'[{"py/reduce": [{"py/function": "numpy.core.multiarray.scalar"},{"py/tuple": [{"py/reduce": [{"py/type": "numpy.dtype"},{"py/tuple": ["i8",1]},{"py/tuple": [3,"<",null,-1,0]}]},{"py/b64": "AQAAAAAAAAA="}]}]},{"py/reduce": [{"py/function": "numpy.core.multiarray.scalar"},{"py/tuple": [{"py/id": 2},{"py/b64": "AgAAAAAAAAA="}]}]},{"py/b64": "AwAAAAAAAAA="}]}]},{"py/b64": "BAAAAAAAAAA="}]}]}]'

对:

jsonpickle.encode(np.array([1,4]).tolist())
'[1,4]'