2015-10-15 44 views
0

我试图将字典保存到一个流中,以便稍后可以加载它。问题是,当我打印带有numpy数组的字典时,它会在numpy数组前面打印字符串“array”。例如:Python:打印一个内部具有numpy数组的字典

import numpy as np 
import pprint 

a = {"hi":"greeting","celeryman":np.array([4,3,3])} 

print(a) 

pprint.pprint(a) 

上面产生输出

{'celeryman': array([4, 3, 3]), 'hi': 'greeting'} 
{'celeryman': array([4, 3, 3]), 'hi': 'greeting'} 

所需的输出是

{'celeryman': [4, 3, 3], 'hi': 'greeting'} 

其中我希望能够没有问题通过使用json.load读取。

我必须为此编写自己的打印机吗?

+0

我只知道如何将所需的输出加载到python中,而不是使用里面的“数组”字符串。 –

+0

你是说json是问题还是格式?如果你想坚持只腌一下,它可以处理一个numpy数组就好 –

+0

我想打印字典的格式,我可以稍后阅读,没有任何特殊字符。所以我猜格式是问题。腌菜是一种解决方案。另一种是在打印之前将所有内容转换为列表。 –

回答

0

,你必须将numpy的数组列表分配副

a = {"hi":"greeting","celeryman":list(np.array([4,3,3]))} 

,如果你想再次初始化连接作为价值的关键“celeryman”作为numpy的数组列表,则─

a=json.load('yourfile.json') 
newnplist=np.array(a['celeryman'])