递归函数遍历格式化字典

要对字典中的所有数值保留两位小数,可以使用递归函数遍历字典,并对所有数值进行格式化:

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)

相关推荐

  1. 函数格式化字典

    2024-07-12 22:50:06       22 阅读
  2. 二叉树

    2024-07-12 22:50:06       54 阅读
  3. 二叉树的(法)

    2024-07-12 22:50:06       47 阅读
  4. 每日一题 二叉树

    2024-07-12 22:50:06       48 阅读
  5. rust磁盘目录及文件

    2024-07-12 22:50:06       54 阅读
  6. 解决图的深度

    2024-07-12 22:50:06       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 22:50:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 22:50:06       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 22:50:06       58 阅读
  4. Python语言-面向对象

    2024-07-12 22:50:06       69 阅读

热门阅读

  1. 【LeetCode】2089. 找出数组排序后的目标下标

    2024-07-12 22:50:06       22 阅读
  2. 简谈设计模式之单例模式

    2024-07-12 22:50:06       20 阅读
  3. Linux文件系统

    2024-07-12 22:50:06       18 阅读
  4. 进程的阻塞

    2024-07-12 22:50:06       24 阅读
  5. 连接docker私有仓库

    2024-07-12 22:50:06       21 阅读
  6. React中的useCallback

    2024-07-12 22:50:06       19 阅读
  7. 【力扣C语言】每日一题—第50题,Pow(x,n)

    2024-07-12 22:50:06       23 阅读
  8. 使用 Spring Boot + POI 实现动态 DOCX 模版导出

    2024-07-12 22:50:06       23 阅读