Ручной ввод биржи python

Рейтинг: 2Ответов: 1Опубликовано: 18.07.2025

Библиотека CCXT. Подскажите пожалуйста как создать ручной ввод биржи, чтоб при этом запрашивал баланс, . Вроде все правильно. В данный момент выдает ошибки.

exchange1_id = 'bybit'
exchange1_api_key = '***************'
exchange1_api_secret = '***************'

exchange2_id = 'binance'
exchange2_api_key = '***************'
exchange2_api_secret = '***************'

exchange1 = getattr(ccxt, exchange1_id)({
    'apiKey': exchange1_api_key,
    'secret': exchange1_api_secret,
})

exchange2 = getattr(ccxt, exchange2_id)({
    'apiKey': exchange2_api_key,
    'secret': exchange2_api_secret,
})
def check_balance():
    name = input('Enter exchange: ')
    exchange = getattr(ccxt, name)()
    balance = exchange.fetch_balance() # Когда тут принудительно вписываю в эту строку "exchange1" или "exchange2", то работает, в ручную вписываю биржи перестает
    print(balance)

Ответы

▲ 2Принят

NB Это работает, но это плохая практика. Не надо хранить ключи в коде. Для ключей есть менеджеры секретов.

Храните ключи в словарике:

keys = {
    'bybit': {
        'apiKey': '***************'
        'secret': '***************'
    },
    'binance': {
        'apiKey': '***************'
        'secret': '***************'
    },
}


def check_balance():
    name = input('Enter exchange: ')
    exchange = getattr(ccxt, name)(keys[name])
    balance = exchange.fetch_balance()
    print(balance)