问题描述
我正在使用 Flask 对使用 list()
命令在字典中列出的生成器进行 jsonify,如下所示:
r = {
"stocks": list(current_user.stocks)
}
但是当我尝试使用 jsonify(r)
时,我收到以下错误:
TypeError:Stocks 类型的对象不是 JSON 可序列化的
在终端中,如果我只是打印出list(current_user.stocks)
,它会返回我:
[<Stocks GOOGL>,<Stocks TSLA>]
Stocks 是我在flask-sqlalchemy 中使用的表/类。我希望 JSON 看起来像这样:
{"stocks": [<Stocks GOOGL>,<Stocks TSLA>]}
我对 <Stocks GOOGL>
和另一个数组元素是字符串没有问题。
关于如何在 dict 中对此进行 jsonify 的任何想法?提前致谢!
解决方法
您提供的示例不是有效的 JSON。您可以尝试以下操作:
r['stocks'] = list(map(repr,r['stocks']))
然后 jsonify(r)
应该产生类似:
{"stocks": ["<Stocks GOOGL>","<Stocks TSLA>"]} # Note that these are strings