我想用一个变量替换JSON字符串中的一些文本
data = '[ { "exchange": "NSE", "tradingsymbol": "INFY", "transaction_type": "BUY", "variety": "regular", "product": "CNC", "order_type": "MARKET", "quantity": 1, "price": 0, "trigger_price": 0 } ]'
我将“INFY”更改为变量符号,但在发送do请求时收到无效的JSON错误。post()
symbol = "INFY"
data = '[ { "exchange": "NSE", "tradingsymbol": symbol, "transaction_type": "BUY", "variety": "regular", "product": "CNC", "order_type": "MARKET", "quantity": 1, "price": 0, "trigger_price": 0 } ]'
我尝试在stackoverflow上查看类似的主题,但无法在代码中实现它
任何帮助都将不胜感激
已更新
requests.post('https://api.kite.trade/margins/orders', headers=headers, data=data)
print(requests.text)
'{"status":"error","message":"invalid json","data":{},"error_type":"InputException"}'
使用“INFY”代替变量,打印结果(response.text)为:
{"status":"success","data":[{"type":"equity","tradingsymbol":"INFY","exchange":"NSE","span":0,"exposure":0,"option_premium":0,"additional":0,"bo":0,"cash":0,"var":122.96690999999998,"pnl":{"realised":0,"unrealised":0},"total":122.96690999999998}]}
解决方案
@barny的解决方案奏效了:
更新此处以关闭主题
data = '[ { "exchange": "NSE", "tradingsymbol": "INFY", "transaction_type": "BUY", "variety": "regular", "product": "MIS", "order_type": "LIMIT", "quantity": 1, "price": 100, "trigger_price": 0 } ]'
data1 = json.loads(data)
data1[0]['tradingsymbol']= tradingsymbol
jsontext = json.dumps(data1)
response = requests.post('https://api.kite.trade/margins/orders', headers=headers, data=jsontext)
您可以使用json.loads转换为Python字典并在那里进行更改,如下所示:
相关问题 更多 >
编程相关推荐