如何从字典列表中获取值 - Python 3.7.1
How to get a value from a list of dictionaries - Python 3.7.1
我对字典列表有疑问。我需要从以下列表中获取比特币的价格(列表较长,但我为这条消息删减了它):
tickerlist = [{'symbol': 'ETHBTC', 'price': '0.03756600'},
{'symbol': 'LTCBTC', 'price': '0.00968200'},
{'symbol': 'BNBBTC', 'price': '0.00164680'},
{'symbol': 'NEOBTC', 'price': '0.00230000'},
{'symbol': 'QTUMETH', 'price': '0.01587100'},
{'symbol': 'EOSETH', 'price': '0.01875000'},
{'symbol': 'SNTETH', 'price': '0.00013221'},
{'symbol': 'BNTETH', 'price': '0.00445000'},
{'symbol': 'BCCBTC', 'price': '0.07908100'},
{'symbol': 'GASBTC', 'price': '0.00064300'},
{'symbol': 'BNBETH', 'price': '0.04389800'},
{'symbol': 'BTCUSDT', 'price': '3954.63000000'}]
objective就是得到如下结果:
BTCUSDT = 3954.63000000
我编写了以下菜鸟代码来实现我的目标:
x = tickerlist[11]
BTCUSDT = x["price"]
print(BTCUSDT)
由于我感兴趣的字典列表(位置 11)中的顺序:{'symbol': 'BTCUSDT', 'price': '3954.63000000'} 可能会更改未来,
我想知道是否有一个函数可以让我插入 'BTCUSDT' 并返回价格 ('3954.63000000')。
我查看了 Whosebug 并找到了综合列表,但我没能成功。
你有什么想法吗?
我正在使用 Python 3.7.1
您可以将 next
函数与遍历 tickerlist
的生成器表达式一起使用以查找匹配的符号:
try:
BTCUSDT = next(ticker['price'] for ticker in tickerlist if ticker['symbol'] == 'BTCUSDT')
except StopIteration:
raise RuntimeError('No matching symbol found')
您可以使用 dict
而不是 list
:
ticker_dict = {
'ETHBTC': {'price': '0.03756600'},
'LTCBTC', {'price': '0.00968200'}
}
要么做这样的事情:
my_currency = list(filter(lambda list_element: list_element['symbol'] == your_symbol, tickerlist))[0]
尝试以下操作:
index = [ i for i in range(len(lst)) if lst[i]['symbol'] == 'BTCUSDT' ][0]
print( tickerlist[index]['symbol'], '=', tickerlist[index]['price'] )
我对字典列表有疑问。我需要从以下列表中获取比特币的价格(列表较长,但我为这条消息删减了它):
tickerlist = [{'symbol': 'ETHBTC', 'price': '0.03756600'},
{'symbol': 'LTCBTC', 'price': '0.00968200'},
{'symbol': 'BNBBTC', 'price': '0.00164680'},
{'symbol': 'NEOBTC', 'price': '0.00230000'},
{'symbol': 'QTUMETH', 'price': '0.01587100'},
{'symbol': 'EOSETH', 'price': '0.01875000'},
{'symbol': 'SNTETH', 'price': '0.00013221'},
{'symbol': 'BNTETH', 'price': '0.00445000'},
{'symbol': 'BCCBTC', 'price': '0.07908100'},
{'symbol': 'GASBTC', 'price': '0.00064300'},
{'symbol': 'BNBETH', 'price': '0.04389800'},
{'symbol': 'BTCUSDT', 'price': '3954.63000000'}]
objective就是得到如下结果:
BTCUSDT = 3954.63000000
我编写了以下菜鸟代码来实现我的目标:
x = tickerlist[11]
BTCUSDT = x["price"]
print(BTCUSDT)
由于我感兴趣的字典列表(位置 11)中的顺序:{'symbol': 'BTCUSDT', 'price': '3954.63000000'} 可能会更改未来, 我想知道是否有一个函数可以让我插入 'BTCUSDT' 并返回价格 ('3954.63000000')。
我查看了 Whosebug 并找到了综合列表,但我没能成功。
你有什么想法吗?
我正在使用 Python 3.7.1
您可以将 next
函数与遍历 tickerlist
的生成器表达式一起使用以查找匹配的符号:
try:
BTCUSDT = next(ticker['price'] for ticker in tickerlist if ticker['symbol'] == 'BTCUSDT')
except StopIteration:
raise RuntimeError('No matching symbol found')
您可以使用 dict
而不是 list
:
ticker_dict = {
'ETHBTC': {'price': '0.03756600'},
'LTCBTC', {'price': '0.00968200'}
}
要么做这样的事情:
my_currency = list(filter(lambda list_element: list_element['symbol'] == your_symbol, tickerlist))[0]
尝试以下操作:
index = [ i for i in range(len(lst)) if lst[i]['symbol'] == 'BTCUSDT' ][0]
print( tickerlist[index]['symbol'], '=', tickerlist[index]['price'] )