Python Object of type float32 is not JSON serializable
前言
使用 json.dumps(result) 对数据转 JSON 数据出现错误:TypeError: Object of type float32 is not JSON serializable
数据中存在的 float32 数据是 numpy 格式的数据,Python 内置的 float 类型可以写入 JSON 中,但是 numpy 的 float32 类型数据不能写入 JSON,所以应将 numpy.float32 类型数据转成 Python.float 类型数据
解决
在函数中使用 str() 函数将 result 转成字符串
print("result", result)
dumps = json.dumps(str(result))
print("dumps", dumps)
这样代码确实可以运行,但是转换的结果却是整个字符串
除此之外,见到有博友封装,如下:
import numpy as np
# 对numpy的数据类型进行转换
# 场景:numpy.float32类型不能写入JSON,需要转成Python的float类型
def convertNumpyDataType(data):
if type(data) is list:
return convertList(data)
elif type(data) is dict:
return convertDict(data)
elif type(data) is np.float32:
return convertFloat32(data)
return data
def convertList(data):
if type(data) is not list:
return data
temp = []
for obj in data:
temp.append(convertNumpyDataType(obj))
return temp
def convertDict(data):
temp = data.copy()
if type(data) is not dict:
return temp
for key in data.keys():
obj = data.get(key)
temp.__setitem__(key, convertNumpyDataType(obj))
return temp
def convertFloat32(data):
return float(data)
Python Object of type float32 is not JSON serializable的更多相关文章
- celery 4.1下报kombu.exceptions.EncodeError: Object of type 'bytes' is not JSON serializable 处理方式
#python代码如下 from celery import Celeryimport subprocess app = Celery('tasks', broker='redis://localho ...
- Object of type 'ListSerializer' is not JSON serializable “listserializer”类型的对象不可JSON序列化
Object of type 'ListSerializer' is not JSON serializable “listserializer”类型的对象不可JSON序列化 一般原因为 序列化的对象 ...
- TypeError: Object of type 'int64' is not JSON serializable
错误类型:TypeError: Object of type 'int64' is not JSON serializable 错误场景:对Numpy和Pandas结果进行json.dumps报错 错 ...
- TypeError: Object of type 'int32' is not JSON serializable ——已解决
将模型用flask封装,返回json时报错:TypeError: Object of type 'int32' is not JSON serializable 网上搜索出的解决方案:重写json.J ...
- labelme2coco问题:TypeError: Object of type 'int64' is not JSON serializable
最近在做MaskRCNN 在自己的数据(labelme)转为COCOjson格式遇到问题:TypeError: Object of type 'int64' is not JSON serializa ...
- Object of type 'ndarray' is not JSON serializable
Object of type 'ndarray' is not JSON serializable import numpy as np import json arr=np.asarray([345 ...
- TypeError: Object of type 'int32' is not JSON serializable
将模型用flask封装,返回json时报错:TypeError: Object of type 'int32' is not JSON serializable 网上搜索出的解决方案:重写json.J ...
- TypeError: Object of type 'ListSerializer' is not JSON serializable
问题: 解决:ser.data是json数据,你想要的
- Object of type Decimal is not JSON serializable
json遇到Decimal 型数据无法正确处理 解决方案 import json result = [ {'name': '小红', 'age': 26, 'balance': decimal.Dec ...
- typeerror object of type ‘decimal‘ is not json serializable jsonify
当使用flask的jsonify返回json数据时,由于数据库有些字段类型使用decimal,而jsonify无法处理 解决方案 导入下面的包即可解决 pip install simplejson
随机推荐
- Qt自定义控件大全文章导航
文章 链接 Qt编写自定义控件1-汽车仪表盘 https://qtchina.blog.csdn.net/article/details/89407746 Qt编写自定义控件2-进度条标尺 https ...
- Hbase shell学习
通过Shell工具可以对云数据库HBase进行数据管理,包括建表.插入数据.删除数据和删除表等操作,本文介绍Shell的基本使用命令. 访问配置 如果使用的是云数据库HBase标准版,基本环境的配置操 ...
- biancheng-JSTL标签库
JSP 标签是一组与 HTML 标签相似,但又比 HTML 标签强大的功能标签.JSTL 用来简化 JSP 开发,可以使我们不用嵌入 Java 代码就能够开发出复杂的 JSP 页面.JSTL 包含 5 ...
- Docker网络:Docker0、容器互联技术--link、自定义网络、实战部署Redis集群
一.Docker网络 ● --理解Docker0 在干净的Linux环境上安装docker(将docker 的所有镜像.容器先删除,干干净净!)实验: 1.查看本地网络信息 ip addr 可见有三个 ...
- AGC008
AGC008 B 题目大意 给出一个序列,一开始全是白色,一次操作可以染黑或染白一段长度为 \(K\) 的区间,要让最后序列中黑色格子上数的和最大,求这个最大值. 解题思路 考虑找结论. 发现我们一定 ...
- lagrange 插值做题记录
插值在OI中的应用 - Grice - 博客园 lagrange 插值笔记 - 洛谷专栏 P5850 calc加强版 - 洛谷 Problem - F - Codeforces 2025oifc202 ...
- TCP/IP协议栈封装解封装过程
发送方将用户数据提交给应用程序把数据送达目的地,整个数据封装流程如下: 用户数据首先传送至应用层,添加应用层信息: 完成应用层处理后,数据将往下层传输层继续传送,添加传输层信息(如TCP或UDP,应用 ...
- Q:记录一次ssh毫无规律的断线
查找tailf /var/log/secure 网上一般是这三个原因 1.ssh服务端配置 vim /etc/ssh/sshd_config #客户端每隔多少秒向服务发送一个心跳数据,0代表不发送#C ...
- 记一次CUDA报错
报错内容:CUDA error: device-side assert triggered 原因:使用ResNet50训练时使用了pretrained=True的模型,但实际类别数classes远超过 ...
- flutter-全局控制键盘收回和单独控制键盘收回
局部控制键盘收回 import 'package:flutter/material.dart'; import 'package:TLDF/main.dart'; class KeyboardBack ...