Python错误:Valueerror-need-than-1-value-to-unpack

时间:2015-11-29 19:25:58

标签: python python-3.x netcdf

在运行此代码的python中:

lat, lon = f.variables['latitude'], f.variables['longitude']
latvals = lat[:]; lonvals = lon[:] 
def getclosest_ij(lats,lons,latpt,lonpt):
dist_sq = (lats-latpt)**2 + (lons-lonpt)**2  
minindex_flattened = dist_sq.argmin()    
return np.unravel_index(minindex_flattened, lats.shape)
iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)

收到以下错误:

  

ValueError Traceback(最近一次调用最后一次)

     

模块()中的ipython-input-104-3ba92bea5d48

     
11     return np.unravel_index(minindex_flattened, lats.shape)
12     iy_min, ix_min = getclosest_ij(latvals, lonvals, 46.1514, 20.0846)
  
     

ValueError:解包需要多于1个值

这是什么意思?我该怎么办呢? 我会读取一个NetCDF文件,它由总色彩水数据组成,其尺寸为:时间(124),纬度(15)和经度(15)。我会根据特定点(lat,lon)和时间来计算tcw的数量。我尝试使用上面的代码来解决我的任务的第一部分,以评估特定坐标的tcw,但没有奏效。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你可以在python中编写

var1, var2 = (1, 2) # = iterable with 2 items

将在var1中存储1,在var2中存储2。 此功能称为解包。

因此,代码抛出的错误意味着函数getclosest_ij返回一个值,而不是将它们解压缩到iy_min和{{1}所需的2个值}}