【发布时间】:2021-12-01 11:07:42
【问题描述】:
我也想创建一个结构化的 JSON 对象:
{
"dataset": "xx",
"test": "trial",
"results": {
"TP": 5,
"FP": 1,
"FN": 1,
"TN": 2
}
}
我以这种方式循环计算这些结果:
json_obj = {}
for i in range(len(dictionary)):
dataset, test = retrieve_data()
tp, fp, tn, fn = calculate_score()
json_obj = json.dumps({'dataset': dataset,
'test': test,
'results': {'TP': tp, 'FP': fp, 'FN': fn, 'TN': tn}})
由于我循环了 4 次,我希望得到一个像这样的 JSON 对象:
{
"dataset": "1",
"test": "trial1",
"results": {
"TP": 5,
"FP": 3,
"FN": 2,
"TN": 5
},
"dataset": "2",
"test": "trial2",
"results": {
"TP": 6,
"FP": 4,
"FN": 12,
"TN": 25
},
"dataset": "3",
"test": "trial3",
"results": {
"TP": 15,
"FP": 1,
"FN": 11,
"TN": 2
},
"dataset": "4",
"test": "trial4",
"results": {
"TP": 5,
"FP": 11,
"FN": 1,
"TN": 21
}
}
如果我使用命令访问第一个元素:
json_obj = json.dumps(json_obj)
print (json_obj[0])
我明白了
"dataset": "1",
"test": "trial1",
"results": {
"TP": 5,
"FP": 3,
"FN": 2,
"TN": 5
}
问题是,如果我运行代码,我只会得到" 作为输出。如果我打印完整的 json_obj,我会得到字符串:
"{\"dataset\": \"1\", \"test\": \"trial1\", \"results\": {\"TP\": 5, \"FP\": 3, \"FN\": 2, \"TN\": 5}}"
看起来它正在创建一个字符串而不是 json 对象。 哪里出错了?
【问题讨论】:
标签: python json dictionary parsing