在Arcpy返回元组中的SearchCursor&列表,不是列表

时间:2016-08-19 14:07:43

标签: python list cursor tuples arcpy

我有一段相当简单的代码,用于搜索面要素类并存储列表中选定字段的数据:

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]

1 个答案:

答案 0 :(得分:0)

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

要检查的另一件事是您eachSMField传入光标的值。它应该是一个字段列表......或者,猜测你的意图,一个包含一个字段名称的列表。