我有一段相当简单的代码,用于搜索面要素类并存储列表中选定字段的数据:
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]
答案 0 :(得分:0)
SearchCursor
的输出是元组的迭代器。您将每行(元组)附加到列表而不是值本身。将您的附加语句更改为cfbDataList.append(row[0])
以附加值而不是元组。
要检查的另一件事是您eachSMField
传入光标的值。它应该是一个字段列表......或者,猜测你的意图,一个包含一个字段名称的列表。