我正在制作一个笔记本,它将通过将数据追加到现有的功能层来归档数据。我有数据下载作为ArcGIS在线地理数据库,然后追加。这在过去对我很有效,但今天却让我很难受。奇怪的是,如果有,它就会运行没有数据在现有的目标特征层中,但如果在特征层中有数据,那么我得到“对象引用未设置为对象的实例”错误。下面的代码,任何帮助将是伟大的,谢谢!
exportCounty = counties.export(县。标题,“档案地理数据库”)
exportCounty.download(“/ arcgis / home /”)
exportCounty.id
countyLog = gis.content。搜索('title:County_Log', item_type='Feature Layer')[0] . search('title:County_Log', item_type='Feature Layer'
countyLog
countyLog.layers [0] .append (item_id = exportCounty.id,
upload_format =“filegdb”)
输出:
解决了!转到解决方案。
好吧,对于那些无意中发现这个问题并想要一个答案的人来说,我想出来了(在Esri的帮助下)。在追加函数中有一个名为“Upsert”的参数。它是可选的,默认为“False”;这就是让我困惑的地方。如果你不包含这个,任何具有相同几何形状的特征都将无法添加。然而,如果你在追加中添加“upsert=False”,那么如果目标和源是相同的字段,它将堆叠数据(就像我试图做的那样)。如果它们不相同,则必须进行一些字段匹配编码。Upsert = True意味着您正在覆盖/更新现有数据,并且必须输入一些其他参数。
countyLog = gis.content。搜索('title:County_Log', item_type='Feature Layer')[0] . search('title:County_Log', item_type='Feature Layer'
countyLog.layers [0] .append (item_id = exportCounty.id upload_format =“filegdb”)
countyLog是层吗?你似乎想看看下面这行是什么
你试过了吗
countyLog.append (item_id = exportCounty.id upload_format =“filegdb”)
好吧,对于那些无意中发现这个问题并想要一个答案的人来说,我想出来了(在Esri的帮助下)。在追加函数中有一个名为“Upsert”的参数。它是可选的,默认为“False”;这就是让我困惑的地方。如果你不包含这个,任何具有相同几何形状的特征都将无法添加。然而,如果你在追加中添加“upsert=False”,那么如果目标和源是相同的字段,它将堆叠数据(就像我试图做的那样)。如果它们不相同,则必须进行一些字段匹配编码。Upsert = True意味着您正在覆盖/更新现有数据,并且必须输入一些其他参数。