2015-10-15 65 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'])