Python json.dumps格式

时间:2019-09-19 19:15:21

标签: python json

我正在尝试执行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
        }

}

如何确保包含[]?

2 个答案:

答案 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') })