如何访问在 Python 中的 IF 语句外的 IF 语句内声明的变量
How to access a variable declared inside IF statement outside IF statement in Python
我试图在我的 if 语句之外使用 searchData
,这样我就可以在我的查询中使用该变量。但它给了我 UnboundLocalError: local variable 'searchData' referenced before assignment
的错误
@app.route('/ML', methods=['GET', 'POST'])
def index():
if request.method == "POST":
request_data = json.loads(request.data)
searchData = (request_data['content'])
return jsonify(searchData)
mycursor = mydb.cursor(dictionary=True)
query = "SELECT * FROM COMPANY WHERE COMPANY_NAME LIKE %s LIMIT 20;"
mycursor.execute(query,("%" + searchData + "%",))
myresult = mycursor.fetchall()
company = []
content = {}
for result in myresult:
content ={'COMPANY_NAME':result['COMPANY_NAME'],}
company.append(content)
content = {}
return jsonify(company)
我也试过在我的 if 语句上方声明 searchData
。它消除了错误,但我的 if 语句没有更改该值。它仍然是我宣布它的方式。我感谢任何人可以提供的帮助。提前谢谢你。
您在 if
语句块中有一个 return searchedInput
语句,删除它可能会解决您的问题。 return
语句将终止您的函数执行。
对于GET
方法,searchedInput
应该在if
语句之前声明。
似乎可以通过对变量进行 global
处理来缓解这个问题。先将 searchData 声明为全局怎么样?
@app.route('/ML', methods=['GET', 'POST'])
def index():
global searchData
if request.method == "POST":
request_data = json.loads(request.data)
searchData = (request_data['content'])
return jsonify(searchData)
mycursor = mydb.cursor(dictionary=True)
query = "SELECT * FROM COMPANY WHERE COMPANY_NAME LIKE %s LIMIT 20;"
mycursor.execute(query,("%" + searchData + "%",))
myresult = mycursor.fetchall()
company = []
content = {}
for result in myresult:
content ={'COMPANY_NAME':result['COMPANY_NAME'],}
company.append(content)
content = {}
return jsonify(company)
我试图在我的 if 语句之外使用 searchData
,这样我就可以在我的查询中使用该变量。但它给了我 UnboundLocalError: local variable 'searchData' referenced before assignment
@app.route('/ML', methods=['GET', 'POST'])
def index():
if request.method == "POST":
request_data = json.loads(request.data)
searchData = (request_data['content'])
return jsonify(searchData)
mycursor = mydb.cursor(dictionary=True)
query = "SELECT * FROM COMPANY WHERE COMPANY_NAME LIKE %s LIMIT 20;"
mycursor.execute(query,("%" + searchData + "%",))
myresult = mycursor.fetchall()
company = []
content = {}
for result in myresult:
content ={'COMPANY_NAME':result['COMPANY_NAME'],}
company.append(content)
content = {}
return jsonify(company)
我也试过在我的 if 语句上方声明 searchData
。它消除了错误,但我的 if 语句没有更改该值。它仍然是我宣布它的方式。我感谢任何人可以提供的帮助。提前谢谢你。
您在 if
语句块中有一个 return searchedInput
语句,删除它可能会解决您的问题。 return
语句将终止您的函数执行。
对于GET
方法,searchedInput
应该在if
语句之前声明。
似乎可以通过对变量进行 global
处理来缓解这个问题。先将 searchData 声明为全局怎么样?
@app.route('/ML', methods=['GET', 'POST'])
def index():
global searchData
if request.method == "POST":
request_data = json.loads(request.data)
searchData = (request_data['content'])
return jsonify(searchData)
mycursor = mydb.cursor(dictionary=True)
query = "SELECT * FROM COMPANY WHERE COMPANY_NAME LIKE %s LIMIT 20;"
mycursor.execute(query,("%" + searchData + "%",))
myresult = mycursor.fetchall()
company = []
content = {}
for result in myresult:
content ={'COMPANY_NAME':result['COMPANY_NAME'],}
company.append(content)
content = {}
return jsonify(company)