【发布时间】:2021-01-14 13:08:12
【问题描述】:
我无法运行此代码,并且出现以下错误:
strucArray = np.array(arrayTuple, np.dtype([('inSeqNum', np.int), (lstVals[0], np.float)]))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'map'
这是代码块:
seqnum = None
lstFile = open(inListFileName)
for lstLn in lstFile.readlines():
lstVals = lstLn.strip().split()
basePath=os.getcwd()
file=os.path.join(basePath, 'OUT_ST',lstVals[1])
if len(lstVals) > 1:
loadArray = np.loadtxt(file).flatten()
if seqnum is None:
seqnum = np.arange(1, len(loadArray) + 1)
arrayTuple = map(tuple, np.column_stack((seqnum, loadArray)))
strucArray = np.array(arrayTuple, np.dtype([('inSeqNum', np.int), (lstVals[0], np.float)]))
arcpy.da.ExtendTable(target, seqFieldName, strucArray, 'inSeqNum', False)
lstFile.close()
【问题讨论】:
-
在 Python3 中
map不计算其值;它只是设置了一个映射。实际执行映射需要list(map...)。
标签: arrays python-3.x numpy dictionary arcpy