我尝试编写一个 python 脚本,根据 csv 文件中名为“FLAT”的字段的记录,替换 ArcGIS Online 中要素图层 (fl) 的名为“fieldID”的字段中的记录。要素层和 csv 文件中的两个常见 ID 分别是 Field_ID 和 CSV_ID。
以下是我所拥有的以及我希望在要素图层中看到的内容。[我所拥有的以及我期望看到的][1] [1]:https://i.stack.imgur.com/l3RpE.png
感谢 HuubZwart,我已经尝试过这段代码,但它没有用。
fl_id = "abcde"
flc = gis.content.get(fl_id)
layer_id = 0 # flc中层的索引
fs = flc.layers[layer_id).query(where="1=1", returnGeometry=False).to_dict()
fields = [field["name"] for field in fs["fields"]] # 从你的 fl 获取字段
features = fs["features"] # 已有的特征
csv_file_path = # 你的绝对文件路径
df = pd.read_csv(csv_file_path) #读取csv,必要时添加sep=指定分隔符
fields = [field["name"] for field in fs["fields"] if field["name"] in df.columns]
update_dict = df.set_index("CSV_ID")[fields].to_dict("index") # 获取以id字段为索引的字典
edits = [] # 空列表填充要更新的功能
for f in features: updated_attributes = update_dict.get(f["attributes"]["Field_ID"]) # 从字典中获取新值 if(updated_attributes is not None): f["attributes"].update(updated_attributes) # 更新特征,所有来自 csv 的值都会覆盖旧的
edits.append(f) #将编辑应用到要素图层
flc.layers[layer_id].edit_features(updates=edits)*
我收到此消息“参数对 edit_features 无效”