I used below code to store student information but I get only one value appearing in the json file.
import json def get_studentdetails(): data={} data['name']=input("Enter Student name") data['class']=input("Enter Class") data['maths']=input("Enter Marks for Maths") data['eng']=input("Enter English Marks") data['sci']=input("Enter Science Marks") return (data) out={} while True: quit=input("Enter Y/N to continue") if quit.lower()=='n': break else: out['Student_Detail']= get_studentdetails() with open('students.json','w') as file: json.dump(out,file,indent=2)
Advertisement
Answer
It is because you are overwriting your file after each while loop. Do the writing to file outside. Also, You want to store student into list.
import json def get_studentdetails(): data={} data['name']=input("Enter Student name") data['class']=input("Enter Class") data['maths']=input("Enter Marks for Maths") data['eng']=input("Enter English Marks") data['sci']=input("Enter Science Marks") return (data) out=[] while True: quit=input("Enter Y/N to continue") if quit.lower() == 'n': break record = get_studentdetails() out.append(record) with open('students.json','w') as file: json.dump(out,file,indent=2)