要对字典中的所有数值保留两位小数,可以使用递归函数遍历字典,并对所有数值进行格式化:
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)