如何使用Python API从元数据更新项目属性?

4656
9
03-22-2019 01:40
JonathanBailey
临时贡献者III

通过ArcGIS Portal UI,当我编辑一个门户项目的元数据时,当我保存元数据记录时,该项目的属性会更新:

但是,当我从Python API更新该项的元数据时,该项的属性没有更新。我使用了以下2种方法来更新项目的元数据:

item.metadata esri_metadata_file_name

项。更新(元数据 esri_metadata_file_name)

是否有一种方法,使用Python API,更新元数据时更新项目的属性?

标签(3)
0荣誉
9回复
Egge-JanPolle1
常规赛MVP

早上好,乔纳森,

请看下面的例子。这个脚本允许您获取项目并更新元数据项,如代码片段、描述、使用条款、演职员表和一个或多个标签。

HTH,

Egge-Jan

arcgis地理信息系统进口地理信息系统#登录ArcGIS Onlinemy_agol地理信息系统“https://www.arcgis.com”用户名密码#拿到你的物品my_itemmy_agol内容得到' < itemID > '#定义元数据service_snippet“这里你可以放一个描述特征层的小片段”service_description这里你可以放一个特征层的描述service_terms_of_use“只供内部使用”service_credits©我,我自己和我service_tags“铁路”“加拿大”#创建更新字典item_properties“片段”service_snippet“描述”service_description“licenseInfo”service_terms_of_use“accessInformation”service_credits“标签”service_tags#应用更新my_item更新item_properties

修改元数据

通过子资源>提示>元数据您将得到一个带有修改值的XML(参见下面的屏幕转储)。

JonathanBailey
临时贡献者III

嗨Egge-Jan,

谢谢你的回复。

然而,我正试着往另一个方向走。我有一个应用于该项的XML元数据文档。我希望更新项属性,而不必编写额外的代码来解析XML并显式地设置项上的属性。

乔恩。

Egge-JanPolle1
常规赛MVP

我不知道该怎么做。让我们看看其他人是怎么说的……

0荣誉
通过 匿名用户
不适用

嗨Egge-Jan,
谢谢你上传你的脚本文件…非常有用的。

问题:您使用什么作为资源来标识元数据项的名称,例如。'snippet'或'licenseInfo'。

例如,如果我想更新:元数据>资源>引用>标题和日期>修订日期-见屏幕截图-在脚本中的'dictitem_properties'中使用什么关键字。

欢呼,
格雷格

标签(3)
0荣誉
MunachisoOgbuchiekwe
新贡献者III

你使用的是什么版本的Python API ?你能试试这个项目吗?更新with version 1.5.1 of the Python API? The newest version 1.6.0 did not work for me but 1.5.1 did.

0荣誉
JonathanBailey
临时贡献者III

嗨Munacghiso,

部分成功——我使用的是v1.6.0,所以我回到了v1.5.1,现在我能够获得要更新的项的Description。但是,其他属性(如Credits)仍然没有更新。

SanghongYoo1
通过
新贡献者II

我还使用XML元数据文件来维护ArcGIS在线元数据。看看我的GitHub回购.它适用于版本1.5.2(还没有对1.6.0进行测试)。

0荣誉
GurminderBharani1
新贡献者III

请确认在ArcGIS Online的用户界面中提供本地元数据文件是否能够成功更新(覆盖)元数据?

如果是,那么您可以跟踪网络请求以提取URL和参数,并使用requests python模块发送https请求。

您还需要令牌,因此再次使用REST API来生成令牌。

sweston_doc
通过
新的因素

它似乎适用于我尝试的大多数元数据XML文件,但有一些只有通过ArcGIS Online手动上传才能工作。这是python API的1.7.1版本。

0荣誉