从pandas系列对象中检索JSON中的值

问题描述 投票:0回答:2

我需要帮助从python中的JSON响应对象中检索值。具体来说,我如何获取价格 - 价格 - 价值?我遇到了麻烦:

JSON对象:

{'prices': [{'asks': [{'liquidity': 10000000, 'price': '1.16049'}],
   'bids': [{'liquidity': 10000000, 'price': '1.15989'}],
   'closeoutAsk': '1.16064',
   'closeoutBid': '1.15974',
   'instrument': 'EUR_USD',
   'quoteHomeConversionFactors': {'negativeUnits': '1.00000000',
    'positiveUnits': '1.00000000'},
   'status': 'non-tradeable',
   'time': '2018-08-31T20:59:57.748335979Z',
   'tradeable': False,
   'type': 'PRICE',
   'unitsAvailable': {'default': {'long': '4063619', 'short': '4063619'},
'openOnly': {'long': '4063619', 'short': '4063619'},
'reduceFirst': {'long': '4063619', 'short': '4063619'},
'reduceOnly': {'long': '0', 'short': '0'}}}],
 'time': '2018-09-02T18:56:45.022341038Z'}

码:

data = pd.io.json.json_normalize(response['prices'])
asks = data['asks']
asks[0]

Out: [{'liquidity': 10000000, 'price': '1.16049'}]

我想得到价值1.16049 - 但在尝试不同的事情后遇到麻烦。

谢谢

python json pandas series
2个回答
2
投票

asks [0]返回一个列表,所以你可能会做类似的事情

asks[0][0]['price']

要么

data = pd.io.json.json_normalize(response['prices'])
price = data['asks'][0][0]['price']

0
投票

您拥有的数据包含jsonslists。因此,您需要相应地浏览它。列表可以通过indexes(从0开始)访问,jsons可以通过keys访问。

   price_value=data['prices'][0]['asks'][0]['price']
   liquidity_value=data['prices'][0]['asks'][0]['liquidity']

在这种情况下解释这个逻辑:我假设你的大json对象存储在一个名为data的对象中。首先访问此对象中的prices键。然后我有index 0因为下一把钥匙出现在list内。然后在进入列表后,你有一个名为asks的密钥。现在再次有一个列表,所以你需要使用index 0访问它。然后最后关键liquidityprice在这里。

© www.soinside.com 2019 - 2024. All rights reserved.