从 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())
.
我在 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())
.