当我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}}
我最终
raise TypeError(repr(o) + " is not JSON serializable")
TypeError: 39 is not JSON serializable
据我了解,
39
应该可序列化正确吗?这似乎在列表中的第一个
int
上失败。有我不知道的jsonify
行为吗? 最佳答案
您没有实际的整数。您可能有一个numpy.float64
或类似的对象,在打印时看起来很像整数。熊猫数据帧会产生这些数据,例如,请参见其Gotchas documentation。
您必须将它们转换为int
或教Flask JSONEncoder
如何显式地处理它们。
对于numpy ndarray
,使用.tolist()
method转换为列表以获取本机Python类型。