Python中使用 Json格式化浮点数的问题

本文介绍了一种在Python中使用自定义编码器类来控制JSON输出中小数点后位数的方法。通过重写JSONEncoder的encode方法实现对浮点数的格式化,解决了输出JSON时浮点数位数过长的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

想通过Json输出一个嵌套的字典数据数据结构,其中的浮点数位数比较长,找不到合适的方法对小数点之后数字进行截断。

数据结构示例:

import json
from json import encoder

data = {
    "branch": "xxxx",
    "date": "2022-11-10",
    "achv": 10759.900000000001
}

class MyEncoder(json.JSONEncoder):
    def encode(self, obj):
        if isinstance(obj, float):
            return format(obj, '.1f')
        return json.JSONEncoder.encode(self, obj)


json_str = json.dumps(data, cls=MyEncoder)
print(json_str)
# 输出
# {"branch": "xxxx", "date": "2022-11-10", "achv": 10759.900000000001}

下面的链接中都提到了这个问题,但没有彻底解决。

参考链接:

Python:强制对json中的浮点数进行精度处理? |

使用标准 json 模块格式化浮点数 - IT屋-程序员软件开发技术分享社区

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值