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

如何在Python中遍历并提取Kraken API返回的未知键名JSON订单数据

处理Kraken API返回的未知键名JSON数据

我完全懂你的困扰——Kraken的OpenOrders接口返回的订单数据里,每个订单的键都是随机生成的唯一ID,没法提前硬编码来获取。不过Python处理这种键未知的字典非常方便,咱们一步步来解决这个问题:

先看你的现有代码

你目前的代码只是打印了原始的JSON数据,没法直接遍历那些订单:

resp = kraken_request("/0/private/TradeBalance", { "nonce": str(int(10000*time.time())), "asset": "USD" }, api_key, api_sec)
print("TradeBalance: " + str(resp.json()))
resp = kraken_request("/0/private/OpenOrders", { "nonce": str(int(10000*time.time())), "asset": "USD" }, api_key, api_sec)
print()
print("OpenOrders: " + str(resp.json()))

解决方案:遍历字典的键值对

当你获取到JSON数据后,result.open是一个字典,其中键是订单ID,值是订单的完整信息。我们可以用Python字典的items()方法来遍历这个结构,不需要提前知道键名。

修改后的代码示例

import time
import json  # 用于格式化输出,可选

# 先获取OpenOrders数据
resp = kraken_request("/0/private/OpenOrders", { "nonce": str(int(10000*time.time())), "asset": "USD" }, api_key, api_sec)
order_data = resp.json()

# 先检查API是否返回错误
if order_data["error"]:
    print(f"API请求出错: {order_data['error']}")
else:
    # 拿到所有开放订单的字典
    open_orders = order_data["result"]["open"]
    
    print("=== 所有开放订单详情 ===")
    # 遍历每个订单ID和对应的订单信息
    for order_id, order_info in open_orders.items():
        print(f"\n--- 订单ID: {order_id} ---")
        # 提取你需要的字段,比如:
        print(f"订单状态: {order_info['status']}")
        print(f"交易对: {order_info['descr']['pair']}")
        print(f"操作类型: {order_info['descr']['type']}")
        print(f"委托价格: {order_info['descr']['price']}")
        print(f"委托总量: {order_info['vol']}")
        print(f"已成交数量: {order_info['vol_exec']}")
        
        # 如果需要查看该订单的全部信息,可以用json.dumps格式化输出
        # print("\n完整订单信息:")
        # print(json.dumps(order_info, indent=2))

代码解释

  1. 错误检查:先判断error列表是否为空,避免后续处理无效数据。
  2. 获取订单字典:通过order_data["result"]["open"]拿到所有开放订单的集合。
  3. 遍历订单:open_orders.items()会返回每一组(订单ID, 订单详情)的键值对,你可以直接使用这两个变量来处理数据。
  4. 提取字段:订单详情本身也是一个字典,你可以通过键名直接获取需要的信息,比如order_info['descr']['pair']就能拿到交易对。

如果你想一次性输出所有订单的完整信息,只需要取消注释代码里的json.dumps部分,它会把字典格式化成缩进清晰的JSON字符串,方便阅读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 12:57:47