DEV Community

Cover image for Python adventure: Crypto-currency market explorer
codesharedot
codesharedot

Posted on

Python adventure: Crypto-currency market explorer

You may have heard about crytpo-currency, alt-coins and other things. So where do you get those crypto coins?

Python can help. Get the market data for a currency, then filter through the data and show the exchanges trading them.

Fetch data

So we can do that with Python code. First import a few modules and ask the user what coin they want:

#!/usr/bin/python3 import requests import json import os coin = input("Coin: ") 
Enter fullscreen mode Exit fullscreen mode

Then we grab the JSON formatted currency data

#!/usr/bin/python3 api_url = "https://coinmarketbook.cc/api/ticker/" + coin response = requests.get(api_url) response_json = response.json() print(response_json) 
Enter fullscreen mode Exit fullscreen mode

Filter data

The data has this format:

{'symbol': 'ETH', 'current_price': '218.94323290', 'bid': '484.52353643', 'ask': '0.00000000', 'volume_24h': '9692178886.24000000', 'market_cap': '23606418360.00000000', 'buy_order': '75703291.01651694', 'created_at': '2018-09-25T18:54:35.711Z', 'updated_at': '2019-09-20T14:09:35.216Z', 'sell_order': '0.00000000', 'name': 'Ethereum', 'markets': ['bitmex:ETH/USD', 'bitmex:ETHU19', 'binance:ETH/BTC', 'binance:ETH/USDT', 'binance:ETH/TUSD', 'binance:ETH/PAX', 'binance:ETH/USDC', 'bithumb:ETH/KRW', 'bitfinex:ETH/USD', 'bitfinex:ETH/BTC', 'bitfinex:ETH/EUR', 'bitfinex:ETH/JPY', 'bitfinex:ETH/GBP', 'bitfinex:ETH/USDT', 'bitfinex:ETH/F0:', 'okex:ETH/USDT', 'okex:ETH/USD', 'okex:ETH/CNY', 'okex:ETH/USDK', 'okex:ETH/BTC', 'huobipro:ETH/USDT', 'huobipro:ETH/BTC', 'huobipro:ETH/HUSD', 'bittrex:ETH/BTC', 'bittrex:ETH/USDT', 'bittrex:ETH/USD', 'poloniex:ETH/BTC', 'poloniex:ETH/USDT', 'poloniex:ETH/USDC', 'kucoin2:ETH/PAX', 'kucoin2:ETH/USDC', 'kucoin2:ETH/TUSD', 'kucoin2:ETH/USDT', 'kucoin2:ETH/BTC', 'kucoin2:ETH/DAI', 'zb:ETH/USDT', 'zb:ETH/QC', 'zb:ETH/BTC', 'lbank:ETH/USDT', 'lbank:ETH/BTC', 'exx:ETH/USDT', 'exx:ETH/BTC', 'exx:ETH/CNYT', 'upbit:ETH/KRW', 'upbit:ETH/BTC', 'upbit:ETH/USDT', 'bitforex:ETH/USDT', 'bitforex:ETH/BTC', 'bitforex:ETH/TUSD', 'hitbtc2:ETH/BTC', 'hitbtc2:ETH/USDT', 'hitbtc2:ETH/TUSD', 'hitbtc2:ETH/DAI', 'hitbtc2:ETH/EURS', 'hitbtc2:ETH/GUSD', 'hitbtc2:ETH/PAX', 'hitbtc2:ETH/USDC', 'hitbtc2:ETH/EOSDT', 'hitbtc2:ETH/Bitcoin Cash', 'liquid:ETH/EUR', 'liquid:ETH/USDC', 'liquid:ETH/GUSD', 'liquid:ETH/AUD', 'liquid:ETH/BTC', 'liquid:ETH/ANCT', 'liquid:ETH/PHP', 'liquid:ETH/IDR', 'liquid:ETH/JPY', 'liquid:ETH/USD', 'liquid:ETH/HKD', 'liquid:ETH/SGD', 'liquid:ETH/DAI'], 'asset_id': 'ethereum', 'highest_volume_market': 'binance'} 
Enter fullscreen mode Exit fullscreen mode

One of the fields in the JSON data is the available markets, we can parse that like this:

#!/usr/bin/python3 print(response_json['markets']) for market in response_json['markets']: if "EUR" in market: print(market) 
Enter fullscreen mode Exit fullscreen mode

In the if statement above I filter for euros. They are trading in other currencies (USD, GBP etc), it's just a filter.

Complete code

The code below collects the markets for the coin that the user types. The modules are all installed by default, except maybe requests.

#!/usr/bin/python3 import requests import json import os coin = input("Coin: ") api_url = "https://coinmarketbook.cc/api/ticker/" + coin response = requests.get(api_url) response_json = response.json() #print(response_json) #print(response_json['markets']) for market in response_json['markets']: if "EUR" in market: print(market) 
Enter fullscreen mode Exit fullscreen mode

Related links:

Top comments (0)