Python json.dump 科学计数法格式化

问题描述 投票:0回答:1

由于怀疑开发人员之间的平台差异,

json.dump
正在以不同的方式格式化科学记数法(一个人的机器上,它格式化为
1e-6
,而在其他人的机器上,它格式化为
1e-06
)。这些文件已提交到我们的 git 历史记录中,因此必须不断地恢复更改很烦人。

有没有办法控制科学数字的格式?

python json format dump
1个回答
0
投票

导入json

类 CustomJSONEncoder(json.JSONEncoder): def 编码(自身,obj): 返回 super().encode(self._convert(obj))

def _convert(self, obj):
    if isinstance(obj, float):
        return format(obj, '.6e')  # Consistent scientific notation
    elif isinstance(obj, dict):
        return {k: self._convert(v) for k, v in obj.items()}
    elif isinstance(obj, list):
        return [self._convert(v) for v in obj]
    return obj

数据={ “值1”:0.000001, “值2”:1e-6, “嵌套”:{“值3”:1e-6} }

打开(“output.json”,“w”)作为f: json.dump(数据, f, cls=CustomJSONEncoder)

© www.soinside.com 2019 - 2024. All rights reserved.