Попробуй.. кроме исключения как <переменная>
Как я могу получить весь объект, возвращаемый вместо просто значения "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 здесь.)