Python 을 이용한 Poloniex API 접근

kdj(57)
Published in
#kr
Words
325
Reading
2 min
Listen
Play
10y

개인적으로 Poloniex 는 예술이라 생각합니다.

  1. 깔끔함
  2. 빠른 속도 - 숨가쁘게 변하는 BUY/SELL order
  3. 아기자기함 - 우측 Markets 목록에 보이는 javascript effect

Poloniex 하단의 Support Resource 로 들어가서 API Documentation 에 가면
https://www.poloniex.com/support/api/ 여기로 오게 되는데,
API 를 통한 Poloniex 가격정보를 얻어 올 수 있으며, 거래도 할 수 있습니다.
Push API 와 Public API 그리고 Trading API 를 제공합니다.

가장 간단한 Public API Methods 중에 returnTicker 를 예를 들어보겠습니다.


returnTicker : Returns the ticker for all markets. Sample output:

{"BTC_LTC":{"last":"0.0251","lowestAsk":"0.02589999","highestBid":"0.0251","percentChange":"0.02390438",
"baseVolume":"6.16485315","quoteVolume":"245.82513926"},"BTC_NXT":{"last":"0.00005730","lowestAsk":"0.00005710",
"highestBid":"0.00004903","percentChange":"0.16701570","baseVolume":"0.45347489","quoteVolume":"9094"}, ... }

Call: https://poloniex.com/public?command=returnTicker


브라우저에서 https://poloniex.com/public?command=returnTicker 를 입력하면
바로 위와 같은 정보가 보일 겁니다.
위의 포맷을 보면,
{
"BTC_LTC" : {
"last":"0.0251",
"lowestAsk":"0.02589999",
"highestBid":"0.0251",
"percentChange":"0.02390438",
"baseVolume":"6.16485315",
"quoteVolume":"245.82513926"
},
"BTC_NXT" : {
와 같이 { key : value } 같은 형태가 반복해서 나타나는 것을 볼 수 있는데, 이를 json 포맷이라고 합니다.
이 형식으로 Database 뿐만 아니라 객체정보 등을 모두 Text 화 하여 전송할 수 있습니다.
위의 예에서 Key 는 "BTC_LTC" 이며 Value 는
{ "last":"0.0251",
"lowestAsk":"0.02589999",
"highestBid":"0.0251",
"percentChange":"0.02390438",
"baseVolume":"6.16485315",
"quoteVolume":"245.82513926"
}
가 됩니다.
Value 도 여러개의 Json 포맷으로 되어있는데, "last", "lowestAsk" 등은 Key 가 됨을 볼 수 있습니다.
Json 포맷을 중첩시키면 다양한 데이터베이스를 text 화 하여 전송할 수 있을 겁니다.


브라우저를 통해서 위의 정보를 읽어낼 수 있지만, 우리는 이것을 이용하여 우리가 필요로 하는 정보를 얻어내고 싶습니다. Pyhon 을 이용한 방법입니다.

import json, requests
url = 'https://poloniex.com/public?command=returnTicker'
resp = requests.get(url)
data = json.loads(resp.text)
for d in data:
    print d + " " + data[d]["last"]

  1. import 는 라이브러리를 사용하겠다는 의미입니다.
    json 을 text 를 처리하기 위한 json library
    http request 를 처리하기 위한 requests library
  2. url 을 위에서 본 url 을 저장하기 위한 문자열
  3. resp 는 url 처리를 한 후 전달 받은 데이터입니다. (resp.text 가 위에서 본 결과값임)
  4. data 는 잘 모르겠지만 resp.text 정보를 load 하는 것입니다.
    load 후 data 는 key value 형식의 데이터 배열을 갖게 됩니다.
  5. for d in data : data 에서 하나씩 뽑아내서 반복합니다. (for 문)
    d 는 key 이며 data[d] 는 value 인데,
    value 도 key, value 형식이니 data[d]["last"] 하면 뭐가 나올까요?
Python 을 이용한 Poloniex API 접근 | Ecency