如何优化Python编写的JSON分期金额(installment)校验函数?
分期金额校验方案优化
原有代码可优化点
- 多余的嵌套循环:不需要遍历字典的所有键值对,直接读取已知存在的
products、installment键即可,大幅降低冗余逻辑 - 逻辑漏洞:当
installment恰好等于100时,原代码的两个if判断会同时触发,同时输出正确和错误两条提示 - 复用性差:函数硬编码依赖全局变量
my_json,无法适配其他数据源的校验需求 - 提示信息不够精准:错误提示直接输出整个对象,排查问题时不够直观
优化后代码
def instalments_check(data): # 遍历所有订单 for order in data: order_id = order["id"] # 遍历订单下所有产品 for product in order["products"]: product_type = product["product"] installment = product["installment"] # 校验分期金额 if installment >= 100: print(f"订单{order_id}的{product_type}产品分期金额校验通过") else: print(f"订单{order_id}的{product_type}产品分期金额校验不通过,当前金额为{installment}") # 调用测试 instalments_check(my_json)
运行效果说明
运行后会输出每条产品的校验结果,其中只有A3订单的loan产品分期金额65.12小于100,会提示校验不通过,其余产品均校验通过。
内容的提问来源于stack exchange,提问作者Uncle_Moris
相关产品推荐
相关产品推荐

