我在 Flask 框架中有这个简单的 for 循环
@app.route('/kde')
def fetch_erga():
cur = mysql.connection.cursor()
cur.execute("SELECT ergo FROM erga")
rv = list(cur.fetchall())
for row in rv:
stock = str(row[0]['ergo'])
tsapr += [(stock)]
return '<h2>' + tsapr + '</h2>'
这会导致 jinja 崩溃并在浏览器中产生以下错误: 按键错误:0
是关键评估错误还是缺乏关键评估,或者只是循环不良? 任何帮助将不胜感激
编辑: 运行时:
@app.route('/kdef')
def fetch_ergas():
cur = mysql.connection.cursor()
cur.execute("SELECT ergo FROM erga")
rv = list(cur.fetchall())
return '<h2>' + str(rv) + '</h2>'
我在浏览器中得到以下结果
[{'ergo': u'52018'}, {'ergo': u'52019'}, {'ergo': u'63096700'}, {'ergo': u'68003400'}, {'ergo': u'68003501'}, {'ergo': u'69003501'}]
我的意思是它不是一个空光标
最佳答案
KeyError 通常与字典中缺少的键相关。如果是我,我会开始调查 str(row[0]['ergo'])
。是否可能是 rv
中的行对象之一没有'ergo'
关键?
也许如果cur.execute("SELECT ergo FROM erga")
返回一个空查询集?
编辑:
每个 row
在rv
是 dict
输入 object 并且您正在引用 row[0]
但没有0
关键,更改stock = str(row[0]['ergo'])
成为stock = str(row['ergo'])
它应该可以工作
关于python - flask Python中的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53225690/