如何从字典列表中获取值 - Python 3.7.1 [重复]

Posted

技术标签:

【中文标题】如何从字典列表中获取值 - Python 3.7.1 [重复]【英文标题】:How to get a value from a list of dictionaries - Python 3.7.1 [duplicate] 【发布时间】:2019-06-04 17:30:57 【问题描述】:

我的字典列表有问题。我需要从以下列表中获取比特币的价格(列表较长,但我为这条消息剪掉了它):

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']

目标是得到以下结果:

BTCUSDT = 3954.63000000

我编写了以下菜鸟代码来实现我的目标:

x = tickerlist[11]
BTCUSDT = x["price"]
print(BTCUSDT)

由于我感兴趣的字典列表(第 11 位)中的顺序:'symbol': 'BTCUSDT', 'price': '3954.63000000' 将来可能会发生变化, 我想知道是否有一个函数,我只需插入“BTCUSDT”,它就会返回价格(“3954.63000000”)。

我查看了 *** 并找到了完整的列表,但我没有设法使其工作。

你有什么想法吗?

我正在使用 Python 3.7.1

【问题讨论】:

【参考方案1】:

您可以将 next 函数与生成器表达式一起使用,该表达式遍历 tickerlist 以查找匹配符号:

try:
    BTCUSDT = next(ticker['price'] for ticker in tickerlist if ticker['symbol'] == 'BTCUSDT')
except StopIteration:
    raise RuntimeError('No matching symbol found')

【讨论】:

不要忘记默认:如果tickerlist中没有BTCUSDT代码,这将引发异常。 确实在更新。【参考方案2】:

您可以使用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]

【讨论】:

我认为 OP 从他无法控制的 API 中获取字典列表。【参考方案3】:

尝试以下方法:

index = [ i for i in range(len(lst)) if lst[i]['symbol'] == 'BTCUSDT' ][0]

print( tickerlist[index]['symbol'], '=', tickerlist[index]['price'] )       

【讨论】:

以上是关于如何从字典列表中获取值 - Python 3.7.1 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python:如何将字典中的值提取到列表中->当前在结果中获取 dict_values() [重复]

Python:如何从熊猫系列的字典中获取值

如何在python中反转字典并从重复的键值中创建一个列表

如何从字典中获取列表[重复]

python字典转换为list后选中最后一个值

从字典列表中获取值列表