首页 > 解决方案 > python - 解析 json 数据并仅列出大数据

问题描述

您好,我正在获取如下所示的 json 数据。我希望它在我收到的数据中仅列出大于 0.01 的“positionAmt”。另外,我无法到达循环中的元素,如下所示。你能帮助我吗 ?

 def open_positions():
     positions = json.loads(client.futures_position_information())

     for x in positions:
         print(x['symbol'])
     return positions

json数据

[
  {
    "symbol": "BNBUSDT",
    "positionAmt": "0.02",
    "entryPrice": "186.46100",
    "markPrice": "185.28100000",
    "unRealizedProfit": "-0.02360000",
    "liquidationPrice": "0",
    "leverage": "20",
    "maxNotionalValue": "250000",
    "marginType": "cross",
    "isolatedMargin": "0.00000000",
    "isAutoAddMargin": "false",
    "positionSide": "LONG",
    "notional": "3.70562000",
    "isolatedWallet": "0"
  },
  {
    "symbol": "BNBUSDT",
    "positionAmt": "0.00",
    "entryPrice": "0.00000",
    "markPrice": "185.28100000",
    "unRealizedProfit": "0.00000000",
    "liquidationPrice": "0",
    "leverage": "20",
    "maxNotionalValue": "250000",
    "marginType": "cross",
    "isolatedMargin": "0.00000000",
    "isAutoAddMargin": "false",
    "positionSide": "SHORT",
    "notional": "0",
    "isolatedWallet": "0"
  },
  {
    "symbol": "AKROUSDT",
    "positionAmt": "0",
    "entryPrice": "0.00000",
    "markPrice": "0.04434779",
    "unRealizedProfit": "0.00000000",
    "liquidationPrice": "0",
    "leverage": "20",
    "maxNotionalValue": "25000",
    "marginType": "isolated",
    "isolatedMargin": "0.00000000",
    "isAutoAddMargin": "false",
    "positionSide": "BOTH",
    "notional": "0",
    "isolatedWallet": "0"
  }
]

标签: pythonjson

解决方案


您可以使用列表推导过滤输出:

filtered = [x for x in positions if float(x['positionAmt']) > 0.01]

这应该返回一个列表,其中的值positionAmt大于 0.01。您可以调整它以返回特定值,例如symbol

filtered_symbols = [x['symbol'] for x in positions if float(x['positionAmt']) > 0.01]

推荐阅读