将CSV导入ArcGIS Pro时Project Scope列丢失问题求助
问题排查与解决建议
先修复代码里的致命错误
你代码最后两段用csv模块操作文件的逻辑完全错了:
- 用
open(r'new.csv', 'w')打开文件是写入模式,会直接清空原文件内容,csv.reader根本读不到数据,反而把之前生成的有效CSV搞坏了。 - 直接删掉这两段无效代码,用Pandas完成所有读写操作就够了。
修改后的核心代码:
import pandas as pd # 读取Excel指定列范围 df = pd.read_excel(r'original.xlsx', usecols="A:O") # 生成唯一ID字段 df["unique_id"] = df["City"] + "<>" + df["Project Status"] + '-' + df["Project Phase"] # 导出CSV时必须禁用默认索引列(这步很关键!) df.to_csv(r'new.csv', index=False)
针对ArcGIS Pro列丢失的额外排查点
- 检查CSV列结构:用记事本/Notepad++打开生成的
new.csv,确认Project Scope列确实存在,且列之间的逗号分隔符没有异常(比如被引号错误包裹的格式)。 - 验证列名合法性:如果Project Scope列名里有除空格之外的特殊字符(比如
#、&、换行符),ArcGIS可能会自动忽略该列,建议改成纯英文加空格的格式。 - 调整ArcGIS导入设置:导入CSV时不要直接拖入,用导入表工具,在字段映射环节确认Project Scope列是否被识别,勾选「保留字段名」选项,避免ArcGIS自动过滤或重命名列。
- 排查数据类型问题:如果Project Scope列包含超长文本、特殊格式内容(比如多行文本),ArcGIS可能无法解析该列。可以先临时替换该列内容为短字符串,测试是否能正常导入,再定位具体的数据问题。
内容的提问来源于stack exchange,提问作者George Steven
相关产品推荐
相关产品推荐

