Как отображаются данные о спросе или предложении в python3 с помощью Crex24 API - PullRequest
0 голосов
/ 28 марта 2020

Я кодирую бот-телеграмму, чтобы узнать цену некоторых монет для арбитража. Бот работает с 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))
...