out of range float values are not json compliant

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

再次解决

data 参数不仅可以是字典(dict)形式,也可以是列表(list)、元组(tuple)、集合(set)、数字、字符串、布尔值等基本数据类型,甚至是这些类型的组合,包括嵌套的数据结构。json.dumps() 函数能够处理多种复杂的Python数据结构,并将其转换为JSON格式的字符串。

data 是一个列表时,json.dumps() 会递归地处理列表中的每个元素。如果列表中包含了那些默认不能直接被转换成JSON格式的对象(比如自定义类的实例、超出范围的浮点数等),则通过 default 参数指定的函数(如 out_of_range_float_handler)会被调用来处理这些特殊对象。

下面是一个示例,展示了当 data 是一个包含各种数据类型,包括超出范围浮点数的列表时,如何使用 out_of_range_float_handler 来处理这个列表并将其转换为JSON字符串:

def out_of_range_float_handler(obj):
    if isinstance(obj, float) and (obj > 1.79769313486231579e+308 or obj < -1.79769313486231579e+308):
        return str(obj)
    raise TypeError

# data是一个包含各种数据类型的列表,包括一个超出范围的浮点数
data = [1, "text", True, {"key": 3.14}, [1.79769313486231579e+308, 2.718], (3,)]

# 使用自定义处理器将列表转换为JSON字符串
json_str = json.dumps(data, default=out_of_range_float_handler)
print(json_str)

这段代码会将列表中的所有元素,包括那个超出JSON标准浮点数表示范围的数值,成功转换为JSON字符串。
在这里插入图片描述

最后查看原因:

是最后的返回值中的变量没有修改

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值