Я кодирую бот-телеграмму, чтобы узнать цену некоторых монет для арбитража. Бот работает с Coingecko API следующим образом:
#-*- coding: utf-8 -*-
import json
import codecs
import requests
from bs4 import BeautifulSoup, SoupStrainer
import re
import subprocess
from telegram.ext.dispatcher import run_async
from telegram.ext import Updater
from html import escape
updater = Updater(token='BOTKEY')
dispatcher = updater.dispatcher
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
def price_reex(bot,update):
reecoreCapJson = requests.get('https://api.coingecko.com/api/v3/coins/reecore').json()
pricebtc = reecoreCapJson ['market_data']['current_price']['btc']
update.message.reply_text("Price: \n Coingecko \n Price(BTC): {:.8f}".format(pricebtc))
from telegram.ext import CommandHandler
price_handler = CommandHandler('price_reex', price_reex)
dispatcher.add_handler(price_handler)
updater.start_polling()
Но когда я пытаюсь изменить API, например, с Crex24 API, не работает:
#-*- coding: utf-8 -*-
import json
import codecs
import requests
from bs4 import BeautifulSoup, SoupStrainer
import re
import subprocess
from telegram.ext.dispatcher import run_async
from telegram.ext import Updater
from html import escape
updater = Updater(token='914539073:AAH8Rt29BpgD48xMVeHQmyZHzzjoQoklFDM')
dispatcher = updater.dispatcher
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
def price_reex(bot,update):
reecoreCapJson = requests.get('https://api.crex24.com/v2/public/tickers?instrument=REEX-BTC').json()
pricebtc = reecoreCapJson ['ask']
update.message.reply_text("Price: \n Crex24 \n Price(BTC): {:.8f}".format(pricebtc))
from telegram.ext import CommandHandler
price_handler = CommandHandler('price_reex', price_reex)
dispatcher.add_handler(price_handler)
updater.start_polling()
Возвращает ошибку в консоли
File "bot.py", line 26, in price_reex
pricebtc = reexCapJson ['market_data']['ask']
KeyError: 'market_data'
Каков правильный синтаксис для получения значения ask
или bid
? Я проверяю документы по crex24 api и не могу найти информацию.
Спасибо за вашу помощь и извините за мой engli sh.
РЕДАКТИРОВАНИЕ 29.03.2020 РЕШЕНО !! Добавлен этот код
reexCrex24CapJson = requests.get('https://api.crex24.com/v2/public/tickers?instrument=REEX-BTC').json()
ask = reexCrex24CapJson[0]['ask']
bid = reexCrex24CapJson[0]['bid']
update.message.reply_text("Price(BTC) Crex24.com: \n Ask {:.8f}".format(ask)+ "\n Bid {:.8f}".format(bid))