我希望从下面的所有3个列表中拉出“最高”。我不确定如何进行。
[
{
'timestamp':'2019-04-09T23:41:00.000Z',
'symbol':'XBTUSD',
'open':5189.5,
'high':5190,
'low':5189,
'close':5190,
'trades':14,
'volume':1246,
'vwap':5189.4136,
'lastSize':480,
'turnover':24010476,
'homeNotional':0.24010476,
'foreignNotional':1246
},
{
'timestamp':'2019-04-09T23:40:00.000Z',
'symbol':'XBTUSD',
'open':5190,
'high':5190,
'low':5189.5,
'close':5189.5,
'trades':4,
'volume':540,
'vwap':5189.9523,
'lastSize':20,
'turnover':10404800,
'homeNotional':0.104048,
'foreignNotional':540
},
{
'timestamp':'2019-04-09T23:39:00.000Z',
'symbol':'XBTUSD',
'open':5197.5,
'high':5195.5,
'low':5187,
'close':5190,
'trades':56,
'volume':24286,
'vwap':5189.6829,
'lastSize':1058,
'turnover':467970327,
'homeNotional':4.67970327,
'foreignNotional':24286
}
]
我试图简单地使用high = [0:]["high"]
-但这会返回
TypeError: list indices must be integers or slices, not str
什么是将每个列表中的所有3个“高”都包含在内的适当命令?对于这种情况,它应该返回5190, 5190, 5195.5
。
答案 0 :(得分:1)
使用列表理解:[ x['high'] for x in data ]
如果数据是您在原始帖子中发布的数组。
答案 1 :(得分:0)
我认为下面的答案会有所帮助
我已将您的列表分配给listofDict
,并且我正在使用for循环遍历所有列表元素。
由于listofDict
元素是 dict 类型,因此我正在使用 key 提取 value 。
此处 键 为 高
listofDict=[
{
'timestamp':'2019-04-09T23:41:00.000Z',
'symbol':'XBTUSD',
'open':5189.5,
'high':5190,
'low':5189,
'close':5190,
'trades':14,
'volume':1246,
'vwap':5189.4136,
'lastSize':480,
'turnover':24010476,
'homeNotional':0.24010476,
'foreignNotional':1246
},
{
'timestamp':'2019-04-09T23:40:00.000Z',
'symbol':'XBTUSD',
'open':5190,
'high':5190,
'low':5189.5,
'close':5189.5,
'trades':4,
'volume':540,
'vwap':5189.9523,
'lastSize':20,
'turnover':10404800,
'homeNotional':0.104048,
'foreignNotional':540
},
{
'timestamp':'2019-04-09T23:39:00.000Z',
'symbol':'XBTUSD',
'open':5197.5,
'high':5195.5,
'low':5187,
'close':5190,
'trades':56,
'volume':24286,
'vwap':5189.6829,
'lastSize':1058,
'turnover':467970327,
'homeNotional':4.67970327,
'foreignNotional':24286
}
]
for l in listofDict:
print (l['high'])
答案 2 :(得分:0)
您可以使用pandas
并转换为dataframe
/表,然后可以获得df["high"]
。
如果仅需要两个值,则可以执行df['high'][:2]
。这与您尝试过的类似。
import pandas as pd
data = [
{
'timestamp':'2019-04-09T23:41:00.000Z',
'symbol':'XBTUSD',
'open':5189.5,
'high':5190,
'low':5189,
'close':5190,
'trades':14,
'volume':1246,
'vwap':5189.4136,
'lastSize':480,
'turnover':24010476,
'homeNotional':0.24010476,
'foreignNotional':1246
},
{
'timestamp':'2019-04-09T23:40:00.000Z',
'symbol':'XBTUSD',
'open':5190,
'high':5190,
'low':5189.5,
'close':5189.5,
'trades':4,
'volume':540,
'vwap':5189.9523,
'lastSize':20,
'turnover':10404800,
'homeNotional':0.104048,
'foreignNotional':540
},
{
'timestamp':'2019-04-09T23:39:00.000Z',
'symbol':'XBTUSD',
'open':5197.5,
'high':5195.5,
'low':5187,
'close':5190,
'trades':56,
'volume':24286,
'vwap':5189.6829,
'lastSize':1058,
'turnover':467970327,
'homeNotional':4.67970327,
'foreignNotional':24286
}
]
df = pd.DataFrame(data)
print(df['high'].to_list())
[5190.0, 5190.0, 5195.5]