You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中从Bingx字典获取资产遇类型错误的解决方法

合约/资产获取函数报错排查与解决

正常运行的合约获取代码

instruments = send_request(.......)
contractdict = dict()        
if instruments is not None:
   for s in instruments['data']:          
       contractdict[s['symbol']] = Contract(s, "bingx")

报错的资产获取代码

margindata = send_request(.......)
balancedic = dict()
if margindata is not None:            
   for b in margindata['balance']:
       balancedic[b['asset']] = balance(b, "bingx")

错误信息

TypeError: string indices must be integers, not 'str'


问题根源

这个错误表明你尝试用字符串(如'asset')作为索引访问一个字符串类型的变量,而非预期的字典或列表。结合BingX永续合约账户资产信息API的返回规范(该API返回账户资产数据,结构包含状态码code、提示信息msg,核心数据在data字段下,data内的balance是一个字典数组,每个字典包含asset、balance、availableBalance等字段),问题大概率是:

  • margindata中没有直接的balance键,balance实际嵌套在data层级下;
  • margindata['balance']返回的是JSON字符串而非解析后的字典数组;
  • 个别balance元素不是字典类型。

解决步骤

  1. 打印确认返回结构
    先输出完整的margindata,明确数据层级和类型:

    margindata = send_request(.......)
    print(margindata)
    
  2. 根据实际结构修正代码

    • 若balance嵌套在data下(符合API规范的常见情况):
      margindata = send_request(.......)
      balancedic = dict()
      if margindata is not None and 'data' in margindata:
         # 确保balance是可迭代的列表/数组
         balance_list = margindata['data'].get('balance', [])
         for b in balance_list:
             # 校验类型和键存在性,避免报错
             if isinstance(b, dict) and 'asset' in b:
                 balancedic[b['asset']] = balance(b, "bingx")
      
    • 若margindata['balance']是JSON字符串:
      import json
      margindata = send_request(.......)
      balancedic = dict()
      if margindata is not None and 'balance' in margindata:
         try:
             balance_list = json.loads(margindata['balance'])
         except json.JSONDecodeError:
             balance_list = []
         for b in balance_list:
             if isinstance(b, dict) and 'asset' in b:
                 balancedic[b['asset']] = balance(b, "bingx")
      
  3. 增加类型校验
    每次访问字典键前先校验变量类型和键是否存在,能有效避免此类类型错误。


内容的提问来源于stack exchange,提问作者all gm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 10:43:19