Как правильно отформатировать этот вызов API?

1

Я делаю телеграмму chatbot и не могу понять, как вынуть [{' из вывода.

def tether(bot, update):
    tetherCall = "https://api.omniexplorer.info/v1/property/31"
    tetherCallJson = requests.get(tetherCall).json()
    tetherOut = tetherCallJson ['issuances'][:1]
    update.message.reply_text("Last printed tether:  " + str (tetherOut)+" Please take TXID and past it in this block explorer to see more info: https://www.omniexplorer.info/search")

Мой пользователь увидит это как ответ: [{'grant': '25000000.00000000', 'txid': 'f307bdf50d90c92278265cd92819c787070d6652ae3c8af46fa6a96278589b03'}]

Теги:
telegram-bot
python-telegram-bot

1 ответ

1
Лучший ответ

Это выглядит как список с одним dict в нем:

[{'grant': '25000000.00000000',
  'txid': 'f307bdf50d90c92278265cd92819c787070d6652ae3c8af46fa6a96278589b03'}]

Вы должны иметь доступ к dict, индексируя список с помощью [0]...

tetherOut[0]
# {'grant': '25000000.00000000',
#  'txid': 'f307bdf50d90c92278265cd92819c787070d6652ae3c8af46fa6a96278589b03'}

... и если вы хотите получить определенное значение из dict, вы можете индексировать его именем, например

tetherOut[0]['txid']
# 'f307bdf50d90c92278265cd92819c787070d6652ae3c8af46fa6a96278589b03'

Будьте осторожны, связывая эти вещи. Если tetherOut - пустой список, tetherOut[0] будет генерировать IndexError. Вероятно, вы захотите поймать это (и KeyError который будет генерировать недействительная клавиша dict).

  • 0
    Спасибо! Есть ли более быстрый способ отформатировать {} из него или я должен определить грант и txid и распечатать оба в одной строке?
  • 0
    @toBePythonNinja, я не понимаю твой вопрос. Что вы подразумеваете под "более быстрым способом форматирования {} "?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню