Extracting values containing certain string froma list of dictionaries

Viewed 43

I have the following list of dictionaries:

[{'symbol': 'ETHBTC', 'price': '0.07216700'}, 
 {'symbol': 'LTCBTC', 'price': '0.00299400'}, 
 {'symbol': 'BNBBTC', 'price': '0.00999600'}, 
 {'symbol': 'NEOBTC', 'price': '0.00054300'}, 
 {'symbol': 'QTUMETH', 'price': '0.00238900'}, 
 {'symbol': 'EOSETH', 'price': '0.00084200'},
 {'symbol': 'SNTETH', 'price': '0.00002096'}, 
 {'symbol': 'BNTETH', 'price': '0.00089400'}, 
 {'symbol': 'BCCBTC', 'price': '0.07908100'}, 
 {'symbol': 'GASBTC', 'price': '0.00012830'}, 
 {'symbol': 'BNBETH', 'price': '0.13850000'}, 
 {'symbol': 'BTCUSDT', 'price': '42580.58000000'}, 
 {'symbol': 'ETHUSDT', 'price': '3072.66000000'}, 
 {'symbol': 'HSRBTC', 'price': '0.00041400'}, 
 {'symbol': 'OAXETH', 'price': '0.00017780'}, 
 {'symbol': 'DNTETH', 'price': '0.00002801'}, 
 {'symbol': 'MCOETH', 'price': '0.00577200'}, 
 {'symbol': 'ICNETH', 'price': '0.00166300'}, 
 {'symbol': 'MCOBTC', 'price': '0.00021140'}]

How can I extract from it all strings having 'BTC' as a part of them? Also can I filter them while extracting to drop some predetermined?

Thanks

1 Answers

You can also use a generator

list = [{'symbol': 'ETHBTC', 'price': '0.07216700'}, {'symbol': 'LTCBTC', 'price': '0.00299400'}, {'symbol': 'BNBBTC', 'price': '0.00999600'}, {'symbol': 'NEOBTC', 'price': '0.00054300'}, {'symbol': 'QTUMETH', 'price': '0.00238900'}, {'symbol': 'EOSETH', 'price': '0.00084200'}, {'symbol': 'SNTETH', 'price': '0.00002096'}, {'symbol': 'BNTETH', 'price': '0.00089400'}, {'symbol': 'BCCBTC', 'price': '0.07908100'}, {'symbol': 'GASBTC', 'price': '0.00012830'}, {'symbol': 'BNBETH', 'price': '0.13850000'}, {'symbol': 'BTCUSDT', 'price': '42580.58000000'}, {'symbol': 'ETHUSDT', 'price': '3072.66000000'}, {'symbol': 'HSRBTC', 'price': '0.00041400'}, {'symbol': 'OAXETH', 'price': '0.00017780'}, {'symbol': 'DNTETH', 'price': '0.00002801'}, {'symbol': 'MCOETH', 'price': '0.00577200'}, {'symbol': 'ICNETH', 'price': '0.00166300'}, {'symbol': 'MCOBTC', 'price': '0.00021140'}]
try:
    output = (x for x in list if 'BTC' in x['symbol'])
    for i in output:
        print(i)
except StopIteration:
    pass
Related