You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python条件语句调试:实现目标分支轮询,离线时禁止发往主分支

代码修改方案

问题根因

  • 原代码仅在执行之初调用1次get_address_data()获取分支列表,后续等待10秒的逻辑没有刷新地址数据,永远无法识别新上线的分支
  • 末尾的兜底判断逻辑优先级过高:只要当前拉取的分支列表中不存在指定的目标分支,不管用户有没有指定要发往该分支,都会直接返回主分支地址,完全没有等待分支上线的机制
  • 你之前写的尝试代码存在语法和逻辑错误:遍历的branch_name是存邮编和发货项的元组列表,不是原分支字典结构,直接取c["company"]会直接抛出类型错误

修改思路

  1. 优先判断用户是否指定了目标分支,如果未指定才直接走主分支兜底逻辑
  2. 给分支查找逻辑加外层死循环,每次循环都重新拉取最新的分支地址数据,保证能获取到刚上线的分支信息
  3. 每次循环找不到目标分支就休眠10秒,再进入下一次循环重新查找,直到匹配到目标分支为止

完整修改后代码

import time

# 先判断是否未指定分支,未指定直接走主分支
target_branch = self.get_option("branch")
if not target_branch:
    address_data = self.get_address_data()
    return self.item_address(address_data["main_branch"]["item_purchase"]["warehouse"])

# 指定了分支就进入轮询逻辑,直到找到目标分支为止
while True:
    # 每次轮询都重新拉取最新的地址数据,保证能拿到新上线的分支
    address_data = self.get_address_data()
    branchAddress = address_data.get("branch")
    log.trace("{0!r}".format(address_data))
    
    if branchAddress:
        # 生成当前可用的分支列表
        available_postcodes = []
        branch_name = []
        for b in branchAddress:
            postcode = b["company"]["postal_code"]
            available_postcodes.append(postcode)
            branch_name.append((postcode, b["company"]["shipment_item"]))

        log.info("Available addresses: {0}".format(", ".join(
            ["{0} ({1})".format(k, v) for k, v in branch_name])))
        
        # 检查目标分支是否在当前可用列表中
        if target_branch in available_postcodes:
            # 找到目标分支,返回对应地址
            for b in branchAddress:
                if b["company"]["postal_code"] == target_branch:
                    item_purchase = b.get("item_purchase")
                    if item_purchase:
                        return self.item_address(item_purchase["warehouse"])
    
    # 没找到就等10秒再轮询
    log.info(f"目标分支 {target_branch} 未找到,10秒后重新搜索")
    time.sleep(10)

逻辑说明

  • 移除了原代码中分支不存在就直接返回主分支的逻辑,只要用户指定了目标分支就会一直轮询
  • 每次轮询都会重新拉取全量地址数据,能实时识别新上线的分支
  • 只有用户未主动指定目标分支的场景下,才会直接返回主分支地址,符合需求

内容的提问来源于stack exchange,提问作者Mythorim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 07:45:05