Python JSON文件与MongoDB的比较
我有一个JSON文件,其中包含许多学生注册信息和其他信息。从这个JSON文件中,我需要根据一个学生的电子邮件搜索他,然后我需要将他通过的课程解析成一个词汇表 JSON注册表示例:Python JSON文件与MongoDB的比较,python,json,mongodb,flask,Python,Json,Mongodb,Flask,我有一个JSON文件,其中包含许多学生注册信息和其他信息。从这个JSON文件中,我需要根据一个学生的电子邮件搜索他,然后我需要将他通过的课程解析成一个词汇表 JSON注册表示例: "name":"Morton Fitzgerald","email":"mortonfitzgerald@ontagene.com","courses":{"course 1": 10, "
"name":"Morton Fitzgerald","email":"mortonfitzgerald@ontagene.com","courses":{"course 1": 10, "course 2": 3,"course 3": 8}
@app.route('/getPassedCourses', methods=['GET'])
def get_courses():
# Request JSON data
data = None
try:
data = json.loads(request.data)
uuid = request.headers.get('authorization')
except Exception as e:
return Response("bad json content",status=500,mimetype='application/json')
if data == None:
return Response("bad request",status=500,mimetype='application/json')
if not "email" in data:
return Response("Information incomplete",status=500,mimetype="application/json")
if (is_session_valid(uuid)):
student = students.find_one({"$and":[{"email":data['email']},{"courses":{'$exists': True}}]})
if student != None:
iterable = students.find({"courses":{"$gte": 5}})
students_list = []
for student in iterable:
student['_id'] = None
students_list.append(student)
student = {"courses":data['courses']}
return Response(json.dumps(student), status=200, mimetype='application/json')
else:
return Response("There are no courses available for this student", status=400, mimetype='application/json')
else:
return Response("Not authenticated user", status=401, mimetype='application/json')
Morton Fitzgerald, "course 1": 10, "course 3": 8
我试图用find_one方法搜索一个学生,然后我试图创建一个词汇表来添加所有通过的课程
Python脚本:
"name":"Morton Fitzgerald","email":"mortonfitzgerald@ontagene.com","courses":{"course 1": 10, "course 2": 3,"course 3": 8}
@app.route('/getPassedCourses', methods=['GET'])
def get_courses():
# Request JSON data
data = None
try:
data = json.loads(request.data)
uuid = request.headers.get('authorization')
except Exception as e:
return Response("bad json content",status=500,mimetype='application/json')
if data == None:
return Response("bad request",status=500,mimetype='application/json')
if not "email" in data:
return Response("Information incomplete",status=500,mimetype="application/json")
if (is_session_valid(uuid)):
student = students.find_one({"$and":[{"email":data['email']},{"courses":{'$exists': True}}]})
if student != None:
iterable = students.find({"courses":{"$gte": 5}})
students_list = []
for student in iterable:
student['_id'] = None
students_list.append(student)
student = {"courses":data['courses']}
return Response(json.dumps(student), status=200, mimetype='application/json')
else:
return Response("There are no courses available for this student", status=400, mimetype='application/json')
else:
return Response("Not authenticated user", status=401, mimetype='application/json')
Morton Fitzgerald, "course 1": 10, "course 3": 8
所需输出应为:
"name":"Morton Fitzgerald","email":"mortonfitzgerald@ontagene.com","courses":{"course 1": 10, "course 2": 3,"course 3": 8}
@app.route('/getPassedCourses', methods=['GET'])
def get_courses():
# Request JSON data
data = None
try:
data = json.loads(request.data)
uuid = request.headers.get('authorization')
except Exception as e:
return Response("bad json content",status=500,mimetype='application/json')
if data == None:
return Response("bad request",status=500,mimetype='application/json')
if not "email" in data:
return Response("Information incomplete",status=500,mimetype="application/json")
if (is_session_valid(uuid)):
student = students.find_one({"$and":[{"email":data['email']},{"courses":{'$exists': True}}]})
if student != None:
iterable = students.find({"courses":{"$gte": 5}})
students_list = []
for student in iterable:
student['_id'] = None
students_list.append(student)
student = {"courses":data['courses']}
return Response(json.dumps(student), status=200, mimetype='application/json')
else:
return Response("There are no courses available for this student", status=400, mimetype='application/json')
else:
return Response("Not authenticated user", status=401, mimetype='application/json')
Morton Fitzgerald, "course 1": 10, "course 3": 8