gpt4 book ai didi

python - jsonify 上的值错误

转载 作者:行者123 更新时间:2023-11-29 18:35:53 24 4
gpt4 key购买 nike

我对 Flask 和 Python 非常陌生,我必须将 MySql 查询转换为 json 格式。在转换时,我面临值(value)错误并且无法理解,请帮助我,提前谢谢。

ValueError:字典更新序列元素#0的长度为8;执行 jsonify(r) 时需要 2

@app.route('/post')
def display():
cursor.execute("select * from tablename")
result=cursor.fetchall()
r = [dict((cursor.description[i][0], value) for i, value in enumerate(row)) for row in result]
return jsonify(r)

最佳答案

有一种更好的方法可以从 MySQL 查询创建字典,它可以帮助您解决收到的错误。

定义游标时,应该让它以字典列表的形式返回查询结果,如下所示:

cursor = connection.cursor(dictionary=True)

这样,从查询返回的表中的每一行都将作为列表中的字典存在。它看起来像这样:

[
{'firstcol': 'value1row1', 'secondcol': 'value2row1'... 'tenthcol': 'value10row1'},
{'firstcol': 'value1row2', 'secondcol': 'value2row2'... 'tenthcol': 'value10row2'},
...
{'firstcol': 'value1row50', 'secondcol': 'value2row50'... 'tenthcol': 'value10row50'}
]

然后,将结果 JSON 化就变得非常简单:

返回jsonify(结果)

从那里,您将拥有一个 JSON 对象,其中包含可以通过键引用的元素。如果您想显示“firstcol”中的所有值,则只需在 JavaScript 文件中添加 response['firstcol']

此外,为了确保您清楚 Flask 路由,将您的路线命名为“/post”并不会为您的路线定义“POST”方法。你需要:

@app.route('/post'methods=['POST'])

如果您已经意识到这一点,我深表歉意 - 我几个月前刚刚开始学习 Flask,最初对一些约定感到非常困惑,所以我想您可能和我处于同一条船上。

关于python - jsonify 上的值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45303803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com