0

我正在做一個加密的貨幣分析腳本,交流API捆綁包在一個JSON對象,它打印這個 -如何在Python中將三維多維數組拆分成不同的數組?

{'error': [], 'result': {'XXBTZEUR': {'asks': [['892.00000', '0.067', 
1489866640]], 'bids': [['891.86000', '0.032', 1489866639]]}}} 

正如你可以看到市場蔓延,這是一個多維數組。讓我簡化它的結構。

c = {'a':[],'b':{'bsubarray':{'asks':[[x1,y1,z1],[x2,y2,z2],...] 
          {'bids':[[x1,y1,z1],[x2,y2,z2],...]} 

我試圖讓4個陣列了這 - ask_xask_ybid_xbid_y

的這是字面上我在Python第三個節目,所以任何詳細的解釋將真正幫助我學習。

謝謝!

回答

0

要提取ask_xask_y,等等,那麼你只需要zip了相關asks等,如:

>>> c = {'a':[],'b':{'bsubarray':{'asks':[['x1','y1','z1'],['x2','y2','z2'],['x3','y3','z3']], 
...        'bids':[['x1','y1','z1'],['x2','y2','z2'],['x3','y3','z3']]}}} 
>>> ask_x, ask_y, ask_z = zip(*c['b']['bsubarray']['asks']) 
>>> bid_x, bid_y, bid_z = zip(*c['b']['bsubarray']['bids']) 
>>> ask_x 
('x1', 'x2', 'x3') 
>>> ask_y 
('y1', 'y2', 'y3') 

使用實際數據:

>>> c = {'error': [], 'result': {'XXBTZEUR': {'asks': [['892.00000', '0.067', 1489866640]], 
...           'bids': [['891.86000', '0.032', 1489866639]]}}} 
>>> ask_x, ask_y, ask_z = zip(*c['result']['XXBTZEUR']['asks']) 
>>> bid_x, bid_y, bid_z = zip(*c['result']['XXBTZEUR']['bids']) 
>>> ask_x 
('892.00000',) 
>>> ask_y 
('0.067',) 
+0

感謝您的幫助,解決了!! 〜謝謝你的回答,超級有用。有沒有一種方法可以讓ask_x包含ask數組的所有x(x1,x2,x3 ...)條目?〜 – tharkimaa

+0

它確實包含所有'(x1,x2,x3)' - '('x1',' x2','x3')'你的例子只有一個項目。 – AChampion