抛出错误时,如何获取返回的整个对象而不仅仅是“error_message”值?(详情如下)
我目前正在使用block.io API,并尝试从某个 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"
某种方式访问场景下的整个对象。
(这里是 Github 上的整个项目。)