python - 从 Python 2.7 转换到 3.4 时出现 jsonify 问题

标签 python python-3.x flask

我在 Flask 中有一个简单的 api,可以在 Python 2.7 上正常运行。 View 通过在 transform_data 字典上调用 jsonify 来返回 json 响应。

return jsonify(transform_data)

现在我正在转向 python 3.4,但出现以下错误。

raise TypeError(repr(o) + " is not JSON serializable")

TypeError: ItemsView(OrderedDict([('Car', 1217.62), ('Transfer', 551.86), 'Service Fees', 1313.6), ('MISC Costing', 82.09), ('Air', 35858.23), ('Hotel', 6179.34)])) is not JSON serializable

为什么我会收到此错误?我需要更改什么才能使其在 Python 3.4 上运行?

最佳答案

当您创建transform_data时,您将一个值设置为字典的项目。但是,.items() 现在返回字典上的 ItemsView 迭代器,而不是元组列表。找到您调用 .items() 的位置,并将结果转换为列表:list(my_dict.items())

关于python - 从 Python 2.7 转换到 3.4 时出现 jsonify 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28018953/

相关文章:

sqlite - 在Flask应用程序中对查询的SQL使用markdown格式

python - 过滤掉 np.percentile 中的零

python - 获取时间范围内的帧数?

python - 从不一致分隔的 csv 文件返回特定值

python - 使用 PySpark 以 orc 格式写入大型数据帧时如何避免 OOM 问题?

session - 在 Flask 中调用任何 View 函数之前,如何从数据库中加载一些数据?

python - 如何访问 docker 容器中的内部服务器?

python - 保留作为序列一部分的数组的第一个元素

python - 在 iPython/Jupyter 笔记本中安装多个 Python 3 内核

python - 使用 BeautifulSoup 抓取 Google 时出现语法错误