微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python词典列表

如何解决python词典列表

| 我有一个简单的代码,可以使用sqlalchemy从数据库获取用户,并将其作为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
谢谢。     

解决方法

        嗯,既然您的代码已粘贴,我可以看到基本问题确实来自
jsonify
。以下解决方法应该令人满意。
>>> import json
>>> json.dumps({\"results\": [{\"id\":1,\"username\":\"john\"},{\"id\":2,\"username\":\"doe\"}]})
\'{\"results\": [{\"username\": \"john\",\"id\": 1},{\"username\": \"doe\",\"id\": 2}]}\'
jsonify
替换为
json.dumps
,如果这不能解决问题,请通知我。 但是,如果您更喜欢使用
flask.jsonify
,则应该阅读
flask
文档。
jsonify
的参数应与任何dict构造函数的参数相同-即dict或可迭代的元组。这就是问题所在。     ,        我通过简单地说解决了这个错误
return jsonify( results = d )
代替
return jsonify( d )
    ,        您正在用
*args
调用
dict()
,这会将args扩展到位置参数。这是您看到该错误的典型原因。别说了。     ,        错误是您不正确地创建字典时所期望的错误-请参阅Python字典创建错误 编辑:查看来自senderle的答案,找出根本原因...     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。