Python 从头开始创建FeatureLayer

Python 从头开始创建FeatureLayer,python,arcgis,esri,Python,Arcgis,Esri,我正在尝试创建使用python arcgis包的新实例 我发现这是不可能的,我正在穿越,尝试不同的事情,我发现自己在兜圈子,慢慢地我开始把我的耳朵拔出来 这就是我所拥有的: 导入arcgis 导入json 从arcgis.gis导入gis g=GIS(username=“my\u uname”,password=“my\u pwd”) prop=arcgis.features.FeatureCollection(dictdata={'attributes':{'foo':'bar','lorem

我正在尝试创建使用python arcgis包的新实例

我发现这是不可能的,我正在穿越,尝试不同的事情,我发现自己在兜圈子,慢慢地我开始把我的耳朵拔出来

这就是我所拥有的:

导入arcgis
导入json
从arcgis.gis导入gis
g=GIS(username=“my\u uname”,password=“my\u pwd”)
prop=arcgis.features.FeatureCollection(dictdata={'attributes':{'foo':'bar','lorem':'ipsum'})
prop_json=json.dumps({“featureCollection”:{“layers”:[dict(prop.properties)]})
item_properties={“type”:“Feature Collection”,“title”:“test_Feature_Collection_01”,“text”:prop_json}
it=g.content.add(项目属性=项目属性)
在这一点上-我不明白为什么
it.layers
会产生空结果。我认为
item\u属性
格式不正确,导致
arcgis
忽略我的图层定义。。。但是我没有地方去检查它应该是什么样子。我想我应该使用
arcgis
中的一些东西来为我生成层定义,而不是自己手工制作JSON,所以它是未来的证明

稍后我想对该项目执行以下操作:

lr=arcgis.features.FeatureLayer.fromitem(item=it)
此操作失败,因为类型错误:项目必须是服务类型,而不是功能集合

所以我想我可以在这里发布并使用它

pit=it.publish()
lr=arcgis.features.FeatureLayer.fromitem(item=pit)
我需要
FeatureLayer
来调用
append
(这样每当我有新的东西要推送时,我就可以抛出额外的数据)

但令我惊讶的是,我甚至无法发布该项目,而且我得到了
异常:作业失败。
(更让我惊讶的是,该项目居然被发布了,因为我可以通过content manager网站看到它)

我还尝试创建“CSV”项目类型:

导入arcgis
导入json
从arcgis.gis导入gis
g=GIS(username=“my\u uname”,password=“my\u pwd”)
项目属性={“类型”:“CSV”,“标题”:“测试功能\u集合\u 01”}
it=g.content.add(item_properties=item_properties,data=“/tmp/foo.csv”)
pit=it.publish()
lr=arcgis.features.FeatureLayer.fromitem(item=pit)
但是,这会导致无图层项,这会导致未处理的异常
索引器:列表索引超出范围
(因为方法
arcgis
调用尝试访问空图层…)

请帮助……

我设法得到了某种我需要的东西。。。然而,我仍在努力理解如何让
arcgis
直接从硬盘上传数据,而不是从其他项目上传数据。总之,代码如下:

导入arcgis
导入json
从arcgis.gis导入gis
g=GIS(username=“my\u uname”,password=“my\u pwd”)
项目属性\u 1={“类型”:“CSV”,“标题”:“测试功能\u集合\u 01”}
it_1=g.content.add(item_properties=item_properties_1,data=“/tmp/my_data.csv”)
pit_1=it_1.publish()
table=arcgis.features.table.fromitem(item=pit_1)
#现在我们想抛出一些额外的数据,我们是否必须创建另一个项目来实现这一点??
项目属性\u 2={“类型”:“CSV”,“标题”:“测试功能\u集合\u 02”}
it_2=g.content.add(item_properties=item_properties_2,data=“/tmp/more_data.csv”)
source\u info=g.content.analyze(文件路径='/tmp/more\u data.csv',文件类型='csv',位置类型='none')
#“it_2”中的数据似乎附加到了“table”容器中(该容器是已发布的项,而不是项本身)
table.append(item_id=it_2.id,upload_format='csv',source_info=source_info[“publishParameters”],upsert=False)
因此,要将一些数据附加到现有项,我必须创建新项


编辑:

要上传数据而不必创建临时项目,请使用
编辑功能
,而不是
附加

#创建如上面示例所示的表
从arcgis导入要素
f=features.Feature.from_dict({“attributes”:{“some_attribute”:“value”})
fs=features.FeatureSet(features=[f])
表.编辑功能(添加=fs)