NANMEI_002 南美空运价格提取规则(中美航线)。当用户提供南美价格 Excel 文件(usdc.xlsx,Central America Sheet)时使用。触发词:nanmei_002、usdc、Central America、南美中美航线。
NANMEI_002 价格提取 Skill是一项面向实际任务的技能,主要用于提取 NANMEI 中美航线(usdc.xlsx)运价表 → 24列标准输出 → 上传 WPS;⚠️ 铁律:仅提取用户最新提交文件,禁止复制历史数据;
每次提取必须从用户当前提交文件 全新读取;有就是有,没有就是。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
提取 NANMEI 中美航线(usdc.xlsx)运价表 → 24列标准输出 → 上传 WPS。
| 参数 | 值 |
|---|---|
| 源文件 | 用户提交(通常为 usdc.xlsx) |
| Sheet | Central America |
| 起始港 | PVG(默认) |
| 价格编号 | nanmei_002 |
| 来源 | nanmei |
| 生效日期 | 动态(datetime.now()) |
| 45KG | 始终为空 |
| 引擎 | openpyxl(.xlsx) |
| 差异点 | nanmei_001 | nanmei_002 |
|---|---|---|
| 源文件 | usd.xlsx |
usdc.xlsx |
| Sheet | Hoja1 |
Central America |
| 生效日期 | 硬编码 2026-04-20 |
动态 datetime.now() |
| 数据块键 | (dest, carrier, routing) | (dest, carrier)(不含 routing) |
| 航司识别 | 排除 KGS/CBM/LOOSE/PALLET | 排除 KGS/CBM/KG |
| 散托解析函数 | parse_remark_for_san |
parse_remark_for_san_and_usd |
| USD增量存在时 | 按 remark 判断 | 强制散货 |
| 无备注默认 | 散货/托盘 | 散货/托盘(⚠️ 禁止用列名缩写"散托") |
| 路由解析 | 标准三段 | dest段 strip / 后缀 |
1. 确认源文件路径 2. openpyxl 加载 Central America 3. 第一遍扫描:行级状态采集(两遍架构同 001) 4. 第二遍处理:按 (dest, carrier) 分组 → 链式推导 5. 生成 24 列 DataFrame 6. 保存 → 自动上传 WPS → 删除临时文件
| col | 字段 | 作用 |
|---|---|---|
| 1 | AOD | 目的地三字码 |
| 2 | CARRIER | 航司代码 OR 比重(KGS/CBM>XXX) |
| 3 | 100KG | 价格 |
| 4 | 300KG | 价格 |
| 5 | 500KG | 价格 |
| 6 | 1000KG | 价格 |
| 7 | Frequency | 频次 |
| 8 | Routing | 路由(PVG-XXX-YYY-ZZZ) |
| 10 | Remark | 备注 |
# 状态变量 current_dest = None # col1 有值更新 current_carrier = None # col2 识别为航司更新 current_routing = None # col8 有值更新 current_origin = None # 从路由提取 current_transfer = [] # 从路由中段提取 current_freq = None # col7 有值更新 current_remark = None # col10 有值更新
# 与 001 不同:col1 含 / 时用路由目的地
if '/' in str(col1 or ''):
current_dest = routing_dest # 从 col8 路由提取
# 数据块 = (dest, carrier) — 不含 routing key = (row['dest'], row['carrier']) blocks[key].append(row)
GT/LT/1:1 推导逻辑与 001 完全相同。
is_carrier_code)与 001 基本相同,额外排除条件:
| 条件 | 说明 |
|---|---|
含 KGS / CBM |
货型格式 |
含 KG |
新增排除(如 KG>500) |
多航司 / 分隔 |
每个段 2-4 位字母数字 |
parse_remark_for_san_and_usd)与 001 的关键差异:有 USD 增量 → 强制散货。
| 条件 | 散托类型 | 说明 |
|---|---|---|
备注有 USD X.XX/KG |
散货 | 有增量 → 强制散货 |
LOOSE CARTON ONLY / ONLY LOOSE |
散货 | 明确散货 |
LOOSE + PALLET/CASE |
散货/托盘 | 混合 |
PALLET / CASE / SKID |
托盘 | 纯托盘 |
LOOSE |
散货 | 纯散货 |
| 无以上 | 散货/托盘 | 默认(⚠️ 禁止使用 "散托",那是列名缩写不是数据值) |
extract_routing_info)与 001 基本相同,差异:dest 和 transfers 会 strip / 后缀。
输入: "PVG-LHR-DFW/IAH-GRU" → origin="PVG", transfers=["LHR","DFW"], dest="GRU" → dest = re.sub(r'/.*$', '', dest) # 去掉 / 后部分
002 无备注时默认值 = "散货/托盘",⚠️ 严禁使用列名缩写 "散托" 作为数据值。合法值只有:散货、托盘、散货/托盘。
有 USD 增量时,散托类型必须是 "散货",不看其他关键词。
如果 col1 = PTY/MGA,不能用 col1 作为目的地,必须从路由提取。
两个不同路由但同一 (dest, carrier) 会被合并推导。如果路由差异影响价格,需要注意。
KG>500 这类内容会被误识别为航司,必须排除。
货型行的 col9 备注列在 Excel 中常是合并单元格,只有首行有 "usd X.XX/kg" 文本,后续行 col9 为空。
inc=''0.28修复:货型行循环内维护 block_inc,遇到新增量即更新,后续行自动继承。
block_inc = inc # carrier 增量(可能为空)
for cargo_row in cargo_rows:
row_st, row_inc = parse_st_type_and_increment(mr9, mr11)
if row_inc:
block_inc = row_inc # 合并单元格首行 → 更新 block
final_inc = block_inc if block_inc else inc
当前脚本:/Users/hantao/WorkBuddy/oone/extract_nanmei_002_0525.py
源文件:用户提交
输出:nanmei_002_0525_output.xlsx(临时,上传后删除)
新批次时需更新 file_path 和生效日期即可。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章