如何在python中将三阶多维数组拆分成不同的数组?

2024-05-20 21:37:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个加密货币分析脚本,交换api把市场价差捆绑在一个JSON对象中,这个JSON对象打印了这个-

{'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编写的第三个程序,所以任何详细的解释都会帮助我学习。你知道吗

谢谢你!你知道吗


Tags: 对象脚本json货币数组askx1x2
1条回答
网友
1楼 · 发布于 2024-05-20 21:37:32

要提取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',)

相关问题 更多 >