python - 无法在 Python 中的 JSON 字符串中插入变量
问题描述
我想用一个变量替换 JSON 字符串中的一些文本。
data = '[ { "exchange": "NSE", "tradingsymbol": "INFY", "transaction_type": "BUY", "variety": "regular", "product": "CNC", "order_type": "MARKET", "quantity": 1, "price": 0, "trigger_price": 0 } ]'
我将“INFY”更改为变量符号,但是当我发送请求时收到无效的 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”而不是变量, print(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 字典并在那里进行更改,如下所示:
import json
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']='symbol'
jsontext = json.dumps(data)
推荐阅读
- python - 为什么 Django 在多表继承中隐式创建类型为 parent 的对象?
- php - 如何修复“可恢复的致命错误:类闭包的对象无法在...中转换为字符串”
- sql-server - 根据另一个表中的数据约束一个数据库表条目
- java - 如何在 applicationContext 中停止我们模拟的 MongoDb 仅针对 1 个负测试用例?
- java - Spring Boot 中的延迟加载
- kubernetes - 无法通过使用来自不同 pod 的 cluster-ip 卷曲进入服务,面临连接超时并退出代码 7
- c# - 如何处理从 C# Npgsql 查询返回的空值?
- mongodb - 如何在 Mongoose DB 中查找布尔值?
- django - 在 CBV 列表视图中创建搜索
- python - 弹性搜索从文档示例中给出错误