从 Python 2.7 转换为 3.4 时出现 jsonify 问题

Issue with jsonify while converting from Python 2.7 to 3.4

我在 Flask 中有一个简单的 api,可以在 Python 2.7 上正常运行。通过在 transform_data 字典上调用 jsonify 查看 returns 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() 现在 returns 是一个 ItemsView 字典上的迭代器,而不是元组列表。找到您调用 .items() 的位置并将结果转换为列表:list(my_dict.items()).