今天在biboxh上下单成功后,要提取订单号,上代码:
uy_result = bibox.create_limit_swap_buy_order('4LTC/USDT', 1, buy_price) # 挂买单
返回结果:
{'info': {'result': {'result': '32985399398984', 'client_oid': '0', 'cmd': 'order/open', 'index': 0}, 'cmd': 'order/open'}, 'id': "{'result': '32985399398984', 'client_oid': '0', 'cmd': 'order/open', 'index': 0}"}
APP上查看,下单成功。
接下来,要从返回结果中提取订单号:32985399398984,因为这个字典里有两个键,’result’和’id’,看到’id’要顺眼些,所以打算从’id’里面提取订单号:
print(buy_result['id']['result'])
这,我蒙B了。
我双尝试从’result’子字典中提取,自认为方法是对的,但一直不成功。
所以我只能到群里请教,终于,大神回复了。我按照大神的方法,成功了。
a = {'info': {'result': {'result': '32985399273611', 'client_oid': '0', 'cmd': 'order/open', 'index': 0}, 'cmd': 'order/open'}, 'id': "{'result': '32985399273611', 'client_oid': '0', 'cmd': 'order/open', 'index': 0}"}
print(['info']['result']['result'])
exit()
结果如下:
总结:我所用的方法是正确的,之所以不成功,原因有二。
一是我用buy_result[‘id’][‘result’]取订单号,忽略了’id’键的内容是一个字符串”{‘result’: ‘32985399273611’, ‘client_oid’: ‘0’, ‘cmd’: ‘order/open’, ‘index’: 0}”,又没有认真看错误提示。
二是我用buy_result[‘info’][‘result’][‘result’]取订单号没成功,是因为码错字符了,至于错在哪,现在无从查证,但可以肯定方法无误。
最后可行的代码如下:
# 方法一
buy_result['info']['result']['result']
# 方法二
eval(buy_result['id'])['result'] #eval()是将字符串转换成字典。