# 常见问题排查 脚本的错误分三类,先分清类型再定位: - **提示(stderr,不中断)**:未识别的列、未找到国家映射文件等,仅警告。 - **致命错误(退出码 1)**:输入文件不存在、格式不支持、缺必要列。 - **失败行(退出码 2)**:个别需求行生成失败,成功行仍会写出;stderr 逐行打印「第N行 …:原因」。 ## 输入相关 ### 输入文件不存在 - 原因:`-i` 路径错误,或文件名大小写/中文名不符。 - 解决:确认路径存在;PowerShell 中路径含空格时用引号包裹。 ### 不支持的输入格式 - 原因:扩展名不是 `.csv` / `.xlsx` / `.xls`。 - 解决:另存为支持格式后再跑。 ### 输入缺少必要列 - 原因:清单中没有「所有者ID」或「数据周期」(或其别名)。 - 解决:补齐列;列名支持别名,见 input-guide.md 第 2 节。 ### 未识别的列(提示) - 原因:列名不在别名表。 - 解决:不影响生成;如需在输出中回显,改用别名表中列名。 ## 行级失败(第 N 行) ### 缺少所有者ID - 原因:该行 `owner_id` 为空。 - 解决:补充所有者ID。 ### 缺少实体ID - 原因:实体类型不是所有者(如群组/频道/节目)且 `entity_id` 为空。 - 解决:补充实体ID;若确为所有者整体场景,把实体类型改为「所有者/账号」并留空实体ID。 ### 无法解析数据周期 - 原因:日期不符合 `yyyy.m.d-yyyy.m.d`(或 `~`/`~` 分隔)的写法。 - 解决:按 input-guide.md 第 3 节修正。 ### 未识别的国家 - 原因:中文国家名不在 `countries.json`,也不是两位 ISO 代码。 - 解决:改用两位 ISO 代码,或向 `countries.json` 追加映射。 ### 未识别的实体类型 - 原因:`entity_type` 不在映射表。 - 解决:使用 群组/所有者/频道/节目 或 GROUP/CONTENT_OWNER/CHANNEL/VIDEO。 ## 输出问题 ### 输出行数 < 输入行数 - 原因:存在失败行(退出码 2)。 - 解决:查看 stderr 失败列表,逐条修复后重跑。 ### 输出为空 / Excel 打开乱码 - 原因:成功记录为 0;或查看方式不对。 - 解决:确认输入有合法行;脚本以 UTF-8-SIG 写出,Excel 可直接打开正常显示。 ### 找不到输出文件 - 原因:未指定 `-o`,默认输出在**输入文件同目录** `studio_urls_output.csv`。 - 解决:显式用 `-o` 指定输出路径。 ## 编码相关 - CSV 输入乱码/解析异常:脚本先按 UTF-8-SIG 读,失败回退 GBK;仍异常时,把文件另存为 UTF-8 或 GBK 后重试。 - `countries.json` 建议 UTF-8;脚本按 UTF-8-SIG 读取,带 BOM 无影响。 ## 改了固定参数不生效 - 原因:固定参数集中在脚本顶部 `CONFIG`,改后需重跑脚本才会生效。 - 提示:改 `CONFIG` 只影响 URL 参数,不需要改需求清单。