0: return data[0]['trade_price'] return None eth_price = get_ticker_price("KRW-ETH") btc_price = get_ticker_price("KRW-BTC") if eth_price is not None and btc_price is not None: print(f"이더리움 가격: {eth_price} KRW") print(f"비트코인 가격: {btc_price} KRW") else: print("가격 정보를 가져올 수 없습니다.")"> 0: return data[0]['trade_price'] return None eth_price = get_ticker_price("KRW-ETH") btc_price = get_ticker_price("KRW-BTC") if eth_price is not None and btc_price is not None: print(f"이더리움 가격: {eth_price} KRW") print(f"비트코인 가격: {btc_price} KRW") else: print("가격 정보를 가져올 수 없습니다.")"> 0: return data[0]['trade_price'] return None eth_price = get_ticker_price("KRW-ETH") btc_price = get_ticker_price("KRW-BTC") if eth_price is not None and btc_price is not None: print(f"이더리움 가격: {eth_price} KRW") print(f"비트코인 가격: {btc_price} KRW") else: print("가격 정보를 가져올 수 없습니다.")">
import requests

def get_ticker_price(market):
    url = f"<https://api.upbit.com/v1/ticker?markets={market}>"
    response = requests.get(url)
    data = response.json()
    if len(data) > 0:
        return data[0]['trade_price']
    return None

eth_price = get_ticker_price("KRW-ETH")
btc_price = get_ticker_price("KRW-BTC")

if eth_price is not None and btc_price is not None:
    print(f"이더리움 가격: {eth_price} KRW")
    print(f"비트코인 가격: {btc_price} KRW")
else:
    print("가격 정보를 가져올 수 없습니다.")
import requests

def get_ticker_price(market_code):
    url = f"<https://api.upbit.com/v1/ticker?markets={market_code}>"
    response = requests.get(url)
    data = response.json()
    if data:
        return data[0]['trade_price']
    return None

def get_tickers():
    url = "<https://api.upbit.com/v1/market/all>"
    response = requests.get(url)
    data = response.json()
    tickers = [market['market'] for market in data if market['market'].startswith("KRW")]
    return tickers

def main():
    tickers = get_tickers()

    print("사용 가능한 코인 목록:")
    for ticker in tickers:
        print(ticker)

    while True:
        user_input = input("시장 코드를 입력하세요 (예: KRW-BTC) 또는 'quit'를 입력하여 종료: ")
        if user_input == 'quit':
            break
        if user_input in tickers:
            coin_price = get_ticker_price(user_input)
            if coin_price is not None:
                print(f"{user_input}의 가격: {coin_price}")
            else:
                print(f"{user_input} 가격을 가져올 수 없습니다.")
        else:
            print(f"유효하지 않은 시장 코드입니다. 올바른 코드를 입력하거나 'quit'를 입력하여 종료하세요.")

if __name__ == "__main__":
    main()

달 기준으로 상승률/하락률

import requests
from datetime import datetime, timedelta

def get_monthly_candles(market, count):
    url = f"<https://api.upbit.com/v1/candles/months?market={market}&count={count}>"
    response = requests.get(url)
    data = response.json()
    return data

def calculate_monthly_changes(candles):
    changes = []
    for i in range(len(candles) - 1):
        current_candle = candles[i]
        prev_candle = candles[i + 1]
        price_change = (current_candle['trade_price'] - prev_candle['trade_price']) / prev_candle['trade_price'] * 100
        changes.append(price_change)
    return changes

market = "KRW-ETH"
candle_count = 36  # 3년치 데이터 (12개월 * 3년)
candles = get_monthly_candles(market, candle_count)
price_changes = calculate_monthly_changes(candles)

for i, change in enumerate(price_changes):
    month_ago = datetime.strptime(candles[i]['candle_date_time_utc'], "%Y-%m-%dT%H:%M:%S") - timedelta(days=30)
    print(f"{month_ago.strftime('%Y-%m')}: {change:.2f}%")
import requests
import matplotlib.pyplot as plt
from datetime import datetime

def get_monthly_candles(market, count):
    url = f"<https://api.upbit.com/v1/candles/months?market={market}&count={count}>"
    headers = {"accept": "application/json"}
    response = requests.get(url, headers=headers)
    data = response.json()
    return data

def monthly_chages(candles):
    chages = []
    for i in range(len(candles)-1):
        current_candles = candles[i]
        prev_candles = candles[i+1]
        price_chages = (current_candles['trade_price'] - prev_candles['trade_price'])/prev_candles['trade_price'] * 100
        chages.append(price_chages)
    return chages

market = "KRW-ETH"
candle_count = 36
candles = get_monthly_candles(market, candle_count)
price_changes = monthly_chages(candles)

dates = []
for i, change in enumerate(price_changes):
    month_ago = datetime.strptime(candles[i]['candle_date_time_utc'], "%Y-%m-%dT%H:%M:%S")
    print(f"{month_ago} 변동률 : {change:.2f}%")
    dates.append(month_ago)

plt.figure(figsize=(10, 6))
plt.plot(dates, price_changes, marker='o', linestyle='-', color='b')
plt.xlabel('day')
plt.ylabel('changes (%)')
plt.title('ETH up/down')
plt.xticks(rotation=45)
plt.grid(True)
plt.tight_layout()
plt.show()

Untitled

streamlit에 목록화 하여 출력하

import streamlit as st
import requests

def get_ticker_price(market):
    url = f"<https://api.upbit.com/v1/ticker?markets={market}>"
    headers = {"accept": "application/json"}
    response = requests.get(url, headers=headers)
    data = response.json()
    return data[0]['trade_price']

def get_tickers():
    url = "<https://api.upbit.com/v1/market/all>"
    headers = {"accept": "application/json"}
    response = requests.get(url, headers=headers)
    data = response.json()
    tickers = []
    for market in data:
        if market['market'].startswith("KRW"):
            tickers.append(market['market'])
    return tickers

def main():
    st.title("업비트 코인 가격 조회")

    tickers = get_tickers()
    selected_ticker = st.selectbox("코인 목록:", tickers)

    if selected_ticker:
        coin_price = get_ticker_price(selected_ticker)
        st.write(f"{selected_ticker} 의 가격: {coin_price}")
    else:
        st.write("코인을 선택해주세요.")

if __name__ == "__main__":
    main()

멀티 선택으로 수정

import streamlit as st
import requests
import time

def get_ticker_price(market):
    url = f"<https://api.upbit.com/v1/ticker?markets={market}>"
    headers = {"accept": "application/json"}
    response = requests.get(url, headers=headers)
    data = response.json()
    return data[0]['trade_price']

def get_tickers():
    url = "<https://api.upbit.com/v1/market/all>"
    headers = {"accept": "application/json"}
    response = requests.get(url, headers=headers)
    data = response.json()
    tickers = []
    for market in data:
        if market['market'].startswith("KRW"):
            tickers.append(market['market'])
    return tickers

def main():
    st.title("업비트 코인 가격 조회")

    tickers = get_tickers()
    selected_tickers = st.multiselect("코인 목록:", tickers)

    if not selected_tickers:
        st.write("코인을 선택해주세요.")
    else:
        st.write("선택된 코인들의 가격:")
        for selected_ticker in selected_tickers:
            coin_price = get_ticker_price(selected_ticker)
            st.write(f"{selected_ticker} 의 가격: {coin_price}")
    

if __name__ == "__main__":
    main()