Advertisement

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)

还没有任何评论哟~