【发布时间】:2011-05-30 19:13:31
【问题描述】:
我有一个简单的代码来使用 sqlalchemy 从 db 中获取用户并将它们作为 json 返回。我的问题是如何格式化输出以获得如下内容:
{"results": [{"id":1, "username":"john"},{"id":2,"username":"doe"}]}
我的代码输出一个错误,作为 python 新手,我似乎无法解决:
d = []
for user in Users.query.all():
v = {}
for columnName in Users.__table__.columns.keys():
v[columnName] = getattr( user, columnName )
d.append( v )
return jsonify( d )
代码说:
ValueError: dictionary update sequence element #0 has length 11; 2 is required
谢谢。
【问题讨论】:
-
你在哪一行得到这个错误?
-
你能粘贴整个堆栈跟踪吗?
-
不是你报错的原因,但是如果你想拥有那个数据结构,你需要将返回行改为:return jsonify( {"results": d} )
-
完整堆栈跟踪位于:paste.pocoo.org/show/397870 完整代码位于:paste.pocoo.org/show/397871
-
另外,您使用的属性应该是私有的 (
__table__),有 other ways 使用 API 和一些帮助程序来获取该元数据。
标签: python list dictionary