从熊猫系列对象中检索JSON中的值

时间:2018-09-02 19:31:57

标签: python json pandas series

我需要帮助来从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的值-但尝试其他方法后遇到麻烦。

谢谢

2 个答案:

答案 0 :(得分:2)

asks [0]返回一个列表,因此您可以执行类似的操作

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

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

答案 1 :(得分:0)

您拥有的数据彼此之间包含jsonslists。因此,您需要相应地浏览。列表通过indexes(从0开始)访问,而json通过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在这里。