使用Python Flask Put请求更新Dict



我想就如何使用Put请求更新dict寻求建议

我想用{"电子邮件"更新下面dict中的电子邮件:"abc@bmail.com"}

users=[{"userid":1,"username":"John","email":"john@gmailer.com","role":"member","password":"abc123"}]

代码将检查userid是否存在,并返回if-else。

然而,我无法附加userEmail,因为它共享dict的实例没有附加方法

@app.route('/users/<int:userid>', methods=["PUT"])
def addEmail(userid):
userEmail=request.json
reqUser = None
for user in users:
if user['userid']==userid:
reqUser=user
break
if reqUser != None: 
reqUser.append(userEmail)
output={“User with <id> has been successfully updated!”}
return jsonify(output),200
else:
output={"Message":“User with <id> does not exist!”}
return jsonify(output),404

或者,我试图将密钥插入dict,但它也共享dict的实例没有插入成员

@app.route('/users/<int:userid>', methods=["PUT"])
def addEmail(userid):
userEmail=request.json
reqUser = None
for user in users:
if user['userid']==userid:
reqUser=user
break
if reqUser != None: 
reqUser.insert(0,{
"email":userEmail["email"]
})

output={"Message":"User Updated"}
return jsonify(output),200
else:
output={"Message":“User with <id> does not exist!”}
return jsonify(output),404

如何更改dict项目?

方法appendinsert是列表的方法,dict是键/值的映射,添加一个新的映射do:reqUser['email'] = user_email["email"]

对代码样式进行了一些改进:

@app.route('/users/<int:userid>', methods=["PUT"])
def addEmail(userid):
user_email = request.json
for user in users:
if user['userid'] == userid:
user["email"] = user_email["email"]
return jsonify({"Message": "User Updated"})
return jsonify({"Message": f"User with id={userid} does not exist!"}), 404

最新更新