Попробуй.. кроме исключения как <переменная>

Как я могу получить весь объект, возвращаемый вместо просто значения "error_message" при возникновении ошибки? (подробности ниже)

В настоящее время я работаю с API block.io и пытаюсь извлечь данные из объекта, возвращаемого при возникновении ошибки для определенного вызова API. Я работаю в Python 3.6.

В случае успешного вызова я могу просто назначить вызов непосредственно переменной и вернуть возвращенный объект.

Например:

try:
   data = block_io.withdraw_from_labels(amounts='AMOUNT1,AMOUNT2,...', from_labels='LABEL1,LABEL2,...', to_addresses='ADDRESS1,ADDRESS2,...')
   print(data)

в случае успеха вернет это:

{
  "status" : "success",
  "data" : {
    "reference_id" : "<data>",
    "more_signatures_needed" : true,
    "inputs" : [
      {
        "input_no" : 0,
        "signatures_needed" : 1,
        "data_to_sign" : "<data>",
        "signers" : [
          {
            "signer_address" : "<data>",
            "signer_public_key" : "<data>",
            "signed_data" : null
          }
        ]
      }
    ],
    "encrypted_passphrase" : {
      "signer_address" : "<data>",
      "signer_public_key" : "<data>",
      "passphrase" : "<data>"
    }
  }
}

но если не удастся, перешел бы, кроме случая

except Exception as myVariable:
   print(myVariable)

и верните это:

'Cannot withdraw funds without Network Fee of 0.00000000 DOGE. Maximum withdrawable balance is 0.00000000 DOGE.'


Соревнование

Это последнее сообщение было взято непосредственно из "status": "fail" объект, который выглядит следующим образом. Я могу получить этот полный объект, выполнив вызов API в качестве cURL вместо использования их документов Python API. Объект выглядит так:

{
  "status" : "fail",
  "data" : {
    "error_message" : "Cannot withdraw funds without Network Fee of 0.00000000 DOGE. Maximum withdrawable balance is 0.00000000 DOGE.",
    "available_balance" : "0.00000000",
    "max_withdrawal_available" : "0.00000000",
    "minimum_balance_needed" : "10.00000000",
    "estimated_network_fee" : "0.00000000"
  }
}

Проблема в том, что:

except Exception as myVariable:

только присваивает значение из "error_message" ключ к myVariable,

Мой вопрос, как я могу получить доступ к другим ключам в этом объекте, если я не могу назначить результаты этого вызова в Python в случае сбоя (т.е. data = <pythonic api call> не сработает), а внутри except Я могу только получить доступ к значению из "error_message" ключ?

В идеале я хотел бы получить доступ ко всему объекту под "status: "fail" сценарий как-то.

(ps весь проект на Github здесь.)

0 ответов

Другие вопросы по тегам