[Python] How can I pass the variable value to this string in python?

Discussão em 'Python' iniciado por Stack, Maio 15, 2025.

  1. Stack

    Stack Membro Participativo

    I want to assign a variable to the stop loss and take profit in the following phrase. According to the exchange documentation, these values are constants as follows(for example: 102217.88):

    paramsMap = {
    "symbol": symbol,
    "side": side,
    "positionSide": positionSide,
    "type": "MARKET",
    "quantity": amount,
    "stopLoss": "{\"type\": \"STOP_MARKET\", \"stopPrice\": 102217.88,\"workingType\":\"MARK_PRICE\"}",
    "takeProfit": "{\"type\": \"TAKE_PROFIT_MARKET\", \"stopPrice\": 102363.2178,\"price\": 102363.2178,\"workingType\":\"MARK_PRICE\"}"
    }


    When I use the string.format() function as below:

    "stopLoss": "{\"type\": \"STOP_MARKET\", \"stopPrice\": {0},\"workingType\":\"MARK_PRICE\"}".format(str(sl)),


    I get this error:

    KeyError: '"type"'


    So, how can I pass the sl variable value to this string?

    Edit: I put the whole of my function that places an order in the exchange for more clarification.

    def PlaceOrder(symbol, side, positionSide, amount, tp, sl):
    payload = {}
    path = '/openApi/swap/v2/trade/order'
    method = "POST"
    paramsMap = {
    "symbol": symbol,
    "side": side,
    "positionSide": positionSide,
    "type": "MARKET",
    "quantity": amount,
    "stopLoss": "{\"type\": \"STOP_MARKET\", \"stopPrice\": {},\"workingType\":\"MARK_PRICE\"}".format(str(sl)),
    "takeProfit": "{\"type\": \"TAKE_PROFIT_MARKET\", \"stopPrice\": {},\"price\": 102363.2178,\"workingType\":\"MARK_PRICE\"}".format(str(tp))
    }
    paramsStr = request_client.parseParam(paramsMap)
    response = request_client.send_request(method, path, paramsStr, payload)

    return response.json()


    According to JonSG's comment, I use the double {}; however, I get this error again:

    ---------------------------------------------------------------------------
    KeyError Traceback (most recent call last)
    Cell In[4], line 5
    3 tp, sl = Bingx.RiskReward(symbol, buy=True, risk=0.12, reward=0.06,leverage=30)
    4 print(f"tp:{tp} sl:{sl}")
    ----> 5 response = Bingx.PlaceOrder(symbol, 'BUY', 'LONG', 0.0001, tp, sl)
    6 response

    Cell In[1], line 465, in Bingx.PlaceOrder(symbol, side, positionSide, amount, tp, sl)
    457 path = '/openApi/swap/v2/trade/order'
    458 method = "POST"
    459 paramsMap = {
    460 "symbol": symbol,
    461 "side": side,
    462 "positionSide": positionSide,
    463 "type": "MARKET",
    464 "quantity": amount,
    --> 465 "stopLoss": "{\"type\": \"STOP_MARKET\", \"stopPrice\": {{}},\"workingType\":\"MARK_PRICE\"}".format(str(sl)),
    466 "takeProfit": "{\"type\": \"TAKE_PROFIT_MARKET\", \"stopPrice\": {{}},\"workingType\":\"MARK_PRICE\"}".format(str(tp))
    467 }
    468 paramsStr = request_client.parseParam(paramsMap)
    469 response = request_client.send_request(method, path, paramsStr, payload)

    KeyError: '"type"'

    Continue reading...

Compartilhe esta Página