即使鍵“名稱”顯然存在,我仍繼續收到此 KeyError。我嘗試了幾種方法來遍歷 Python 中的字典陣列,但沒有成功。任何幫助表示贊賞。
from flask import Flask, json, request
from werkzeug.user_agent import UserAgent
app = Flask(__name__)
users = [
{"name:": "bitley",
"age": 5000,
"items": [
{"name:": "toyota"},
{"name": "camry"}
]
}
]
#/GET a user by ID
@app.route('/users/<string:name>')
def get_user_by_name(name):
#check to see if the user exists
for user in users:
if user['name'] == 'name':
return json.jsonify(users)
return json.jsonify({"message: " "user not found.."})
Error
if user['name'] == 'name':
KeyError: 'name'
uj5u.com熱心網友回復:
這是因為有一個額外的冒號"name:":。我認為你的意思是"name":。
可能你的意思是return json.jsonify({"message:" "user not found.."})而不是return json.jsonify({"message": "user not found.."}).
而if user['name'] == name:不是if user['name'] == 'name':.
uj5u.com熱心網友回復:
您的問題是當您創建用戶串列時,名稱鍵中有一個額外的冒號,它應該是:
users = [
{"name": "bitley",
"age": 5000,
"items": [
{"name:": "toyota"},
{"name": "camry"}
]
}
]
uj5u.com熱心網友回復:
問題不僅在于額外的冒號,還在于您如何訪問串列中的資料,因為在串列索引中,您只能使用整數或切片,而不能使用字串。而且,當你檢查用戶名時,它應該是一個變數而不是一個字串,否則它永遠不會通過。所以應該是:
from flask import Flask, json, request
app = Flask(__name__)
users = [
{"name": "bitley",
"age": 5000,
"items": [
{"name:": "toyota"},
{"name": "camry"}
]
}
]
@app.route('/users/<string:name>')
def get_user_by_name(name):
#check to see if the user exists
for user in users:
if users[0]['name'] == name:
return json.jsonify(users)
return json.jsonify({"message: " "user not found.."})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365855.html
