我正在尝试执行Parsing json.dumps - Python
中的相反操作我有一个数据框,其中的行格式为:
stopLoss takeProfit price id
154.79 151.79 153.784 0
我想用以下格式的JSON格式化输出
{
"trades" : [{
"stopLoss": 154.79,
"takeProfit": 151.79,
"price": 153.784,
"id: :0
}]
}
在该行上使用json.dumps会产生JSON,但是“交易”之后的[]丢失了。如下图所示:
{
"trades" : {
"stopLoss": 154.79,
"takeProfit": 151.79,
"price": 153.784,
"id: :0
}
}
如何确保包含[]?
答案 0 :(得分:1)
它将完全转储您传入的结构。如果trades
键的值是字典列表而不是单个字典,则将获得所需的输出。但这与JSON没有任何关系。它仅取决于json.dumps()
的参数中包含哪些数据。
如果您的代码看起来像
trades = csvreader.next()
j = {'trades': trades }
json.dumps(j)
然后您要更改为
j = {'trades': [trades]}
答案 1 :(得分:1)
如果x
是熊猫数据框,如您描述的那样:
stopLoss takeProfit price id
0 154.79 151.79 153.784 0
1 254.79 151.79 153.784 1
您可以尝试
json.dumps(x.to_dict(orient='records'))
这使您几乎可以到达那里:
[{"stopLoss": 154.79, "takeProfit": 151.79, "price": 153.784, "id": 0},
{"stopLoss": 254.79, "takeProfit": 151.79, "price": 153.784, "id": 1}]
要获得所需的内容,只需创建一个字典:
json.dumps({ 'trades' : x.to_dict(orient='records') })