ArcMap中使用Python遇到中文字段名错误的解决方法

在ArcMap中使用Python处理含有中文字段名的GIS数据时,遇到编码错误。通过尝试更改编码方式、添加编码声明,以及将中文字段转为unicode,最终找到解决方案:在脚本开头指定#goding=gbk,并将中文字段转为unicode进行读取。
摘要由CSDN通过智能技术生成

前一段时间遇到一个客户需要在ArcMap中批量的通过等高线图生成DEM,但是等高线图中的高程字段名称全部是中文,大家都知道Python遇到中文就会出现各种诡异状况,于是我被用户找去解决问题。

先看看Python的版本,是2.6.5,比用户的2.5.1要高,不知道这个问题能不能在自己电脑上重现。

[图1]

好了,创建一个ChineseTest.py,内容如下:

[图2]

测试一下,结果:

[图3]

好吧,悲剧了,自己电脑上的版本比用户高,没法重现这个错误,只能到现场去解决了。

到用户现场,用上面的同样方式输出“中文”两个字,出现问题:

[图4]

嗯,先把编码方式换成Utf-8尝试下:

错误依旧……

 

既然它提供了网址,那就看看吧。简单地浏览一下&

ArcGIS Desktop使用Python脚本连接到数据库并导入数据通常涉及以下步骤: 首先,你需要安装ArcGIS Python工具箱,它包含了用于操作数据库的模块,如`arcpy`和`pyodbc`(如果处理的是ODBC连接)。如果你尚未安装,可以在这里找到相应的Python包:[ArcGIS Data Management Tools for Python](https://pro.arcgis.com/en/pro-app/arcpy/data-management-tools-for-python.htm)。 以下是一个基本的示例代码片段,展示如何使用PythonArcMap连接到SQL Server数据库,并导入表到地理数据库(Feature Dataset): ```python import arcpy from arcpy import env # 设置环境变量 env.workspace = "C:/path/to/your/gdb" # 地理数据库位置 env.pyodbc_connect_string = 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=server_name;DATABASE=databasename;UID=username;PWD=password' def create_connection(): conn = pyodbc.connect(env.pyodbc_connect_string) return conn def import_data(conn): query = "SELECT * FROM tablename" # 替换为你要导入的实际表名 cursor = conn.cursor() results = cursor.execute(query).fetchall() # 创建新表 table_name = "new_table" # 新表名称 arcpy.CreateTable_management(out_path, table_name) # 将数据插入新表 with arcpy.da.InsertCursor(table_name, ["column1", "column2"]) as icursor: # 根据实际字段替换 for row in results: icursor.insertRow(row) if __name__ == "__main__": try: conn = create_connection() import_data(conn) conn.close() print("数据导入成功") except Exception as e: print(f"发生错误:{e}")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值