Я хочу конвертировать один json формат файла в другой формат. входной json файл выглядит так,
json1 = {"Roll Number":{"0":"12345675890"},"Exam Code":{"0":"125"},"q1":{"0":"A"},"q2":{"0":"B"},"q3":{"0":"B"},"q4":{"0":"C"},"q5":{"0":"C"}
Здесь вы можете считать 0 0-м студентом (лист ответов первого студента)
Я хочу этот выходной формат,
json2 = {
"id": 1,
"Roll Number": 12345675890,
"Exam Code": 125,
"qtn_ans_id": 1, #this is question number
"field1": 0,
"field2": 0,
"field3": 1, #if ans is C then field3=1 and else is 0
"field4": 0,
}
в json1 содержит 5 ответов на вопросы и подробности, и я хочу преобразовать его в json2, и мой код -
import json
Сохраненный json файл в данные
with open('json1.json') as data_file:
data = json.load(data_file)
записать формат по умолчанию
format = {"table": "omr",
"rows":
[
{
"id": 1,
"regist_no": 1215152,
"exam_id": 125,
"qtn_ans_id": 1,
"field1": 0,
"field2": 0,
"field3": 0,
"field4": 0,
}
]
}
Мой фиктивный код
json2 = {}
for (k, v) in data.items():
if(k=='Roll Number'):
format['rows'][0]['regist_no']=v['0']
if(k=='Exam Code'):
format['rows'][0]['exam_id'] = v['0']
if(v['0']=='A'):
format['rows'][0]['field1'] = 1
elif(v['0']=='B'):
format['rows'][0]['field2'] = 1
elif(v['0']=='C'):
format['rows'][0]['field3'] = 1
elif(v['0']=='D'):
format['rows'][0]['field4'] = 1
json2.append(format['rows'])
неверный вывод, который я получаю,
[{
'field1': 1,
'field2': 1,
'field3': 1,
'field4': 1
}]
Все значения поля 1. Для ответа Правый вывод может быть
[{
'field1': 1,
'field2': 0,
'field3': 0,
'field4': 0
}]
или есть какой-либо другой способ, например, использование pandas фрейма данных. Я знаю, что это длинный и глупый вопрос, но я буду рад, если кто-нибудь сможет помочь. Спасибо!