操作方法

操作方法:使用 ArcGIS API for Python 检索 Portal for ArcGIS 或 ArcGIS Online 项目属性和资源详细信息

Last Published: March 25, 2024

描述

要素的项目属性和资源描述并引用 ArcGIS Pro、ArcGIS Online 和 ArcGIS Enterprise 中的内容。 属性用于在搜索中标识用户请求的特定项目,例如,使用项目 ID 进行搜索。 当涉及大量数据时,Esri 建议使用 Python 脚本来简化流程。 可以使用 ArcGIS API for Python 中的 resources.list() 函数来识别项目属性。 但是,在托管项目上运行函数时,可能会返回空结果。 这是预期行为,因为托管项目的属性详细信息驻留在项目的 JSON 中。

本文介绍了如何使用 ArcGIS API for Python 访问 JSON 中的项目属性。 提供的脚本可以在独立的 .py 文件或 ArcGIS Notebook 中运行。

解决方案或解决方法

  1. 导入所需的模块。
from arcgis.gis import GIS
import json
  1. 连接到账户并指定凭据。
    • 对于 ArcGIS Online:
gis = GIS('https://arcgis.com', '<username>', '<password>')
gis = GIS(r'https://essorg.maps.arcgis.com', client_id='<client_id>', client_secret='<client_secret>', verify_cert=False)
  • 对于 Portal for ArcGIS:
gis = GIS(r'https://<machine>.<domain>/<web adaptor name>/home', 'username', 'password', verify_cert=False)
  1. 指定项目 ID。 这可以通过使用单个参数单独完成,也可以通过使用数组参数批量完成。
  • 对于单个项目。
item_id = "<item_id>"
  • 对于多个项目,可以通过修改脚本来添加更多项目 ID,如示例所示。
items = ["<item_id_1>", "<item_id_2>", "<item_id_3>", "<item_id_4>"]
  1. 获取项目资源详细信息。
    • 对于单个项目的完整详细信息:
item = gis.content.get(item_id)
print(json.dumps(dict(item), indent=4))
  • 对于多个项目的完整详细信息:
for item_id in items:
    item = gis.content.get(item_id)
    print(json.dumps(dict(item), indent=4))
  • 对于单个项目的特定详细信息,请修改 print 语句以返回所需的详细信息。
item = gis.content.get(item_id)
print(item["type"])
print(item["owner"])
print(item["title"])
print(item["url"])
  • 对于多个项目的特定详细信息,请修改 print 语句以返回所需的详细信息。
for item_id in items:
    item = gis.content.get(item_id)
    print(item["type"])
    print(item["typeKeywords"])
    print(item["title"])
    print(item["url"])

下面显示了用于打印多个项目的所有项目详细信息的完整脚本。

from arcgis.gis import GIS
import json

gis = GIS("https://essorg.maps.arcgis.com", client_id="bcqwu37r8uboeqsample", client_secret="c2safh3q48hrinf487cbriecbsample", verify_cert=False)

items = ["cf9983q4fciuewn4b3rev983qncubwei6", "1097h13498hcunc2405bffn549"]

for item_id in items:
    item = gis.content.get(item_id)
    print(json.dumps(dict(item), indent=4))

文章 ID: 000032244

获得人工智能支持

使用 Esri Support AI Chatbot 快速解决您的问题。

立即开始聊天

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

立即开始聊天

转至下载选项