要对字典中的所有数值保留两位小数,可以使用递归函数遍历字典,并对所有数值进行格式化:
def format_floats(data):if isinstance(data, dict):return {k: format_floats(v) for k, v in data.items()}elif isinstance(data, list):return [format_floats(item) for item in data]elif isinstance(data, float):return round(data, 2)elif isinstance(data, int):return round(float(data), 2)else:return data
完整代码:
def format_floats(data):if isinstance(data, dict):return {k: format_floats(v) for k, v in data.items()}elif isinstance(data, list):return [format_floats(item) for item in data]elif isinstance(data, float):return round(data, 2)else:return data# 示例字典
data = [{'date': '2024-07','extra_match_details': [{'cost': 917897.2000000001,'vaporization_rate': 1473.62,'resource_id': '1C1A249F59861239FC43F35FB0F0E799','match_amount': 220}],'match_details': [{'excess_amount': 0,'vaporization_rate': 1,'total_cost': 2183999.9999999995,'shortfall_amount': 0,'shortfall_cost': 0,'resource_id': '4354','match_amount': 330517,'excess_cost': 0},{'excess_amount': 0,'vaporization_rate': 1,'total_cost': 98029395.20000002,'shortfall_amount': 0,'shortfall_cost': 0,'resource_id': '4769','match_amount': 21043029,'excess_cost': 0}]}
]# 对字典中的所有数值保留两位小数
formatted_data = format_floats(data)# 打印结果
import pprint
pprint.pprint(formatted_data)