Arcpy 中的 SearchCursor 返回元组和列表,而不是列表

SearchCursor in Arcpy Returning Tuples & Lists, Not a List

我有一段相当简单的代码,用于搜索多边形要素 class 并将所选字段的数据存储在列表中:

for eachSMField in smFieldList:
    with arcpy.da.SearchCursor(seamaskPGN, eachSMField) as cursor:
        for row in cursor:
            cfbDataList.append(row)
        print("### cfbDataList: ")
        print(cfbDataList)

上面最后一行代码给出了以下输出:

[[(4.1,)], [(4.2,)], [(4.34,)], [(4.45,)], [(4.55,)], [(4.58,)], [(4.68,)], [(4.75,)], [(4.78,)], [(4.83,)], [(4.87,)], [(4.89,)], [(4.91,)], [(4.96,)], [(5.03,)], [(5.09,)]]

虽然数据是准确的,但我无法弄清楚为什么数据是 1) 在一个元组中和 2) 每个元组在它们自己的列表中,在更广泛的列表中。

我正在寻找的输出只是列表中的数据,例如:

[4.1, 4.2, 4.34, 4.45, ...etc]

SearchCursor 的输出是元组的迭代器。您将每一行(元组)附加到您的列表而不是值本身。将您的附加语句更改为 cfbDataList.append(row[0]) 以附加值而不是元组。

要检查的另一件事是要传递给游标的 eachSMField 的值。它应该是一个字段列表...或者,猜测您的意图,一个具有一个字段名称的列表。