描述
用于访问基本表属性和方法。
讨论
可通过两种方式将表引用到脚本中以供项目使用。要引用已存在于项目中的表,可在 Map 类中使用 listTables 方法。要从工作空间中直接引用表,可使用 Table 函数。
您可能希望使用 listTables 函数引用项目中的表,这是因为您可能需要更改表的数据源、其定义查询或使用 removeTable 方法从项目中移除表。
Table 函数用于引用您希望添加到项目中的新表。引用新的外部表源后,您可以使用 addTable 方法将其添加到地图中。
通常会需要您更改表的数据源。Layer 对象中的方法和属性可帮助解决此问题。有关详细说明、参数信息、案例和编码示例,请参阅更新和修复数据源帮助主题。
属性
属性 | 说明 | 数据类型 |
connectionProperties (只读) | 将表的数据源连接信息返回为 Python 字典。 | Dictionary |
dataSource (只读) | 返回表的数据源的完整路径。其中包含完整的工作空间路径和数据集名称。对于企业级地理数据库表,将返回包含表的连接信息的字符串。 提示:ArcGIS Pro 工程中的企业级地理数据库表不保留用于创建图层的数据库连接文件的路径 (.sde)。 | String |
definitionQuery (可读写) | 用于获得或设置表的定义查询。 | String |
isBroken (只读) | 如果表的数据源已损坏,则返回 True。 | Boolean |
metadata (可读写) | 获取或设置表格的元数据类信息。请注意:设置元数据取决于 isReadOnly 属性值。 | Metadata |
name (可读写) | 用于以表在内容列表中显示的方式设置或获得表名称。可包含空格。 | String |
方法概述
方法 | 说明 |
getDefinition (cim_version) | 获取表的 CIM 定义。 |
getSelectionSet () | 以 Python 对象 ID 集的形式返回表选择。 |
setDefinition (definition_object) | 设置表的 CIM 定义。 |
setSelectionSet ({oidList}, {method}) | 使用 Python 对象 ID 列表设置表选择。 |
updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case}) | 使用工作空间字典或路径替换连接属性。 |
方法
getDefinition (cim_version)
参数 | 说明 | 数据类型 |
cim_version | 用于表示 CIM 的主要版本的字符串。 | String |
在版本 2.4 中引入了对其他对象属性的 CIM 级别访问权限。Esri 遵循语义版本规范。这意味着,在允许突破性 API 更改的下一个主要版本(例如,3.0)之前,与 cim_version 搭配使用的值为 V2。发布 3.0 之后,新 V3 选项将可用。如果可能在新版本中引入突破性更改,Python 脚本作者可通过该选项控制执行期间将使用的 CIM 版本。
有关使用 CIM 和示例的详细信息,请参阅 Python CIM 访问。
getSelectionSet ()
数据类型 | 说明 |
List | 以 Python 对象 ID 集的形式返回表选择。 |
提供检索表当前选择的简便方式。
setDefinition (definition_object)
参数 | 说明 | 数据类型 |
definition_object | 使用 getDefinition 最初检索的已修改 CIM 定义对象。 | Object |
有关使用 CIM 和示例的详细信息,请参阅 Python CIM 访问。
setSelectionSet ({oidList}, {method})
参数 | 说明 | 数据类型 |
oidList [oidList,...] | 与相应的选择方法一起使用的 Python 对象 ID 列表。 (默认值为 None) | List |
method | 用于指定要使用的选择方法的字符串。
(默认值为 NEW) | String |
利用此方法可方便管理表选择。要清空选择,请使用包含空列表的 NEW 选择方法或不设置任何参数。Python 列表可用于 oidList,但会针对 Table 对象使用 getSelectionSet 方法返回集。
updateConnectionProperties (current_connection_info, new_connection_info, {auto_update_joins_and_relates}, {validate}, {ignore_case})
参数 | 说明 | 数据类型 |
current_connection_info | 用于表示工作空间路径或 Python 字典(包含要更新的源的连接属性)的字符串。 | String |
new_connection_info | 用于表示包含连接属性与新源信息的工作空间路径或 Python 字典的字符串。 | String |
auto_update_joins_and_relates | 如果设置为 True,则 updateConnectionProperties 方法还将更新相关连接或关联的连接。 (默认值为 True) | Boolean |
validate | 如果设置为 True,则仅在 new_connection_info 值为有效连接时,才会更新连接属性。如果为无效连接,则不会替换连接。如果设置为 False,则无论匹配是否有效,此方法都会将所有连接设置为匹配 new_connection_info。在这种情况下,如果匹配不存在,则将损坏数据源。 (默认值为 True) | Boolean |
ignore_case | 确定搜索是否区分大小写。默认情况下,查询区分大小写。要执行不区分大小写的查询,请将 ignore_case 设置为 True。 (默认值为 False) | Boolean |
有关详细说明、参数信息、案例和代码示例,请参阅更新和修复数据源帮助主题。
代码示例
下面的脚本将打印所有地图中的所有表具有已损坏数据源的独立表名称。
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
for m in aprx.listMaps():
for tbl in m.listTableViews():
if tbl.isBroken:
print(f"Table: {tbl.name} is broken in map: {m.name}")
del aprx
下面的脚本会将文件地理数据库中的表添加到地图中。
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
addTab = arcpy.mp.Table(r"C:\Projects\YosemiteNP\Data_Vector\YosemiteData.gdb\NHDFCode")
m = aprx.listMaps("Yose*")[0]
m.addTable(addTab)
del aprx