(python) 업비트에서 모든 코인 가격 가져오기

2019-07-06

업비트에서 모든 코인 가격을 가져오는 방법을 알아보겠습니다.

언어는 python을 이용할 것이고, upbitpy를 이용할 것입니다.

1. upbitpy 설치

먼저 upbitpy 를 설치합니다. (PC에 python이 설치되어있지 않다면 python 먼저 설치)

pip3 install upbitpy

2. 모든 코인 마켓 가져오기

python 파일을 만들고, 먼저 upbitpy를 사용하기 위해 Upbitpy를 import 합니다.

from upbitpy import UpbitPy

upbit = Upbitpy()

get_market_all() API를 이용해 모든 마켓 정보를 가져와 출력합니다.

markets = upbit.get_market_all()
for market in markets:
    print(market)

그럼 아래와 같이 마켓 정보가 딕셔너리 형태로 결과가 출력됩니다.

{'market': 'KRW-BTC', 'korean_name': '비트코인', 'english_name': 'Bitcoin'}
{'market': 'KRW-DASH', 'korean_name': '대시', 'english_name': 'Dash'}
{'market': 'KRW-ETH', 'korean_name': '이더리움', 'english_name': 'Ethereum'}
{'market': 'BTC-ETH', 'korean_name': '이더리움', 'english_name': 'Ethereum'}
{'market': 'BTC-LTC', 'korean_name': '라이트코인', 'english_name': 'Litecoin'}
...

이 마켓 정보를 마켓 종류로 나누어 담습니다.

krw_markets = []
btc_markets = []
eth_markets = []
usdt_markets = []

markets = upbit.get_market_all()
for market in markets:
    if 'BTC-' in market['market']:
        btc_markets.append(market['market'])
    elif 'KRW-' in market['market']:
        krw_markets.append(market['market'])
    elif 'ETH-' in market['market']:
        eth_markets.append(market['market'])
    elif 'USDT-' in market['market']:
        usdt_markets.append(market['market'])
    else:
        print('unknown market: {}'.format(market['market']))

3. 현재 가격 가져오기

그럼 이번엔, get_ticker() API 를 이용해 원화 마켓 코인들의 현재 가격을 가져와 보겠습니다.

ticker = upbit.get_ticker(krw_markets)
for it in ticker:
    print('{} 가격: {}원'.format(it['market'], it['trade_price']))

가격을 잘 받아왔습니다.

KRW-BTC: 13390000.0원
KRW-DASH: 187450.0원
KRW-ETH: 349400.0원
KRW-NEO: 20620.0원
KRW-MTL: 696.0원
...

마찬가지로 BTC마켓이나 ETH, USDT마켓에서의 가격도 받아올 수 있습니다.

ticker = upbit.get_ticker(btc_markets)
for it in ticker:
    print('{}: {}'.format(it['market'], format(it['trade_price'], '.8f')))

ticker = upbit.get_ticker(eth_markets)
for it in ticker:
    print('{}: {}'.format(it['market'], format(it['trade_price'], '.8f')))

ticker = upbit.get_ticker(usdt_markets)
for it in ticker:
    print('{}: {}'.format(it['market'], format(it['trade_price'], '.8f')))

마치며

지금까지 upbitpy를 이용해 전체 코인의 가격을 가져오는 방법을 알아보았습니다.

위에서 사용한 전체 코드는 여기서 확인하실 수 있습니다.

https://github.com/apt-info/samples