Разбор JSON, начинающийся со скобки в python

#python #json #list #object

Вопрос:

У меня также есть структурированный файл .json:

 "[{"dataset": "x0", "test": "Test 3 ", "results": {"TP": 0, "FP": 0, "FN": 0, "TN": 17536}, "dir": "/Users//Test_3"}]"  

Когда я пытаюсь прочитать его со следующим кодом:

 with open(dir, 'r ') as f:  data = json.load(f) print(data[0])  

Я получаю [ в качестве вывода, что означает, что он считывает объект json в виде строки. Я не понимаю, проблема ли в том, как я его сохраняю. Поскольку я заполняю его в цикле, код, который создает этот объект, следующий:

 json_obj = [] for i in range(len(dictionary)):  dataset, test, dir = retrieve_data()  tp, fp, tn, fn = calculate_score()  json_obj.append({'dataset': dataset,  'test': test,  'results': {'TP': tp, 'FP': fp, 'FN': fn, 'TN': tn},  'dir': dir }) json_dump = json.dumps(json_obj) with open(save_folder, 'w') as outfile:  json.dump(json_dump, outfile)  

Структура, которую я пытался создать, выглядит следующим образом:

 {  "dataset": "1",  "test": "trial1",  "results": {  "TP": 5,  "FP": 3,  "FN": 2,  "TN": 5  },  "dir": dir }  

Как я могу правильно прочитать его, чтобы сделать его доступным для анализа?

Ответ №1:

Вы конвертируете json_obj в строку, а затем сбрасываете строку в файл. Дамп json_obj непосредственно в файл:

 #json_dump = json.dumps(json_obj) with open(save_folder, 'w') as outfile:  json.dump(json_obj, outfile)