当我jsonify的字典结果看起来像
{'options': {'seriesName': 'Count', 'startYear': 2009, 'title': 'Title', 'startMonth': 9, 'startDay': 1, 'data': [39, 199, 1137, 1156, 1168, 1821, 1936, 214, 236, 260, 282, 305, 323, 344, 3565, 384, 411, 430, 4540, 473, 521, 548, 576, 6222, 6257, 6982, 7216, 2746, 78230, 8126, 85432, 943217, 1024323, 1113, 1155, 142196, 1243, 1271, 1290, 1327, 1365, 1407, 1451, 1537, 1642, 1742, 1811, 1862, 1936, 1978, 2012, 20655, 2093, 2156, 2203, 22289, 24319, 254424, 2614, 2682, 2755, 2811, 2862, 2949, 30262, 31615, 32301, 343309, 343299, 364236, 332721], 'yAxisLabel': 'Count', 'yMinValue': 0}}
Run Code Online (Sandbox Code Playgroud)
我结束了
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: 39 is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
我的理解39应该是序列化正确吗?
这似乎int在列表中的第一个失败.是否存在jsonify我不知道的行为?
您没有实际的整数.您可能有一个numpy.float64或类似的对象,打印时看起来很像一个整数.例如,Pandas数据框就会生成这些数据框,请参阅它们的Gotchas文档.
您必须将这些转换为int或教授Flask JSONEncoder如何明确地处理这些.
ndarray使用该.tolist()方法获取本机Python类型的numpy 转换为列表.