使用jsonify遇TypeError:numpy.ndarray与str无法比较的求助
解决jsonify报错:TypeError: '<' not supported between instances of 'numpy.ndarray' and 'str'
这个错误的核心原因是jsonify无法直接序列化numpy数组——Flask的jsonify依赖Python标准库的json模块,而json模块默认不识别numpy的自定义数据类型(比如numpy.ndarray、numpy.int64这类),序列化时内部类型校验就会抛出这个错误。
修复方案
把numpy数组转换成Python原生的列表类型再传给jsonify,用numpy数组自带的.tolist()方法即可,它会把数组元素也转换成对应的Python原生类型(比如numpy整数转成int,numpy浮点数转成float)。
修改你的代码:
if rows[0]: print("row1", rows[1]) # 先把numpy数组转成Python列表 data_json = jsonify(rows[1].tolist())
如果rows[1]是嵌套结构(比如列表里包含numpy数组),只需要对每个numpy数组单独调用.tolist()即可,或者用循环批量转换。
内容的提问来源于stack exchange,提问作者Rishabh lavhale
相关产品推荐
相关产品推荐

