Flask调用jsonify进行数据序列化时无法执行, 报错类型为TypeError: Object of type float32无法JSON编码
发布时间
阅读量:
阅读量
1.引入
当调用flask jsonify函数以返回序列化结果时,可能会触发TypeError: 浮点数类型为float32的数据无法进行有效的JSON序列化处理。
我返回的结果是paddle使用numpy直接产生的,格式类似这样:
result = [
[
[
[372.0, 24.0],
[780.0, 24.0],
[780.0, 62.0],
[372.0, 62.0]
],
['可行性研究报告一参考大纲', 0.95109123]
],
......
]
上面的0.95109123$是一个浮点数类型值,在JavaScript中无法直接对浮点数类型进行序列化处理;因此必须将返回结果中的浮点数类型从32位转换为64位以实现数据的有效保存。
2.解决
在浏览网上的解决方案时发现了一些方法;如json编码类、直接转换为字符串以及simplejson等都不符合我的需求。后来采用最为简便的方式,在程序中将不符合规范的数据进行强制类型转换后返回最终结果
for r in result:
r[1][1] = float(result[1][1])
全部评论 (0)
还没有任何评论哟~
