要将JSON对象中的数字限制为小数点后2位,可以使用以下方法:
以下是一个示例代码,演示如何实现这个功能:
import json
import re
def limit_decimal_places(json_obj):
if isinstance(json_obj, dict):
for key, value in json_obj.items():
if isinstance(value, (int, float)):
# 将数字转换为字符串,并匹配小数点后2位
value_str = str(value)
match = re.match(r'^(\d+\.\d{0,2})$', value_str)
if match:
# 匹配成功,将字符串转换回数字类型
json_obj[key] = float(match.group(1))
elif isinstance(value, dict):
# 递归处理嵌套的JSON对象
limit_decimal_places(value)
elif isinstance(value, list):
# 递归处理嵌套的JSON数组
for item in value:
limit_decimal_places(item)
# 示例JSON对象
json_obj = {
"name": "John",
"age": 25,
"salary": 1234.5678,
"nested_obj": {
"score": 98.7654321
},
"nested_array": [1.2345, 6.7890]
}
# 将JSON对象中的数字限制为小数点后2位
limit_decimal_places(json_obj)
# 打印处理后的JSON对象
print(json.dumps(json_obj, indent=4))
输出结果:
{
"name": "John",
"age": 25,
"salary": 1234.57,
"nested_obj": {
"score": 98.77
},
"nested_array": [
1.23,
6.79
]
}
在这个示例中,我们定义了一个limit_decimal_places
函数,它接受一个JSON对象作为参数。函数会遍历JSON对象的属性,并对属性值进行处理。如果属性值是数字类型,就将其转换为字符串,并使用正则表达式匹配小数点后2位。如果匹配成功,就将字符串转换回数字类型,并更新JSON对象中的属性值。对于嵌套的JSON对象和JSON数组,我们使用递归的方式进行处理。
这个方法可以应用于任何包含数字的JSON对象,例如在处理金融数据、科学计算结果等场景中非常有用。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云