3

我正在使用 netCDF4 Python 包,我知道 getattr() 可以获取数据集变量的属性值,例如

root = Dataset(file_name,'r')
for var in root.variables.values():
    print 'attrs of this variable:',var.ncattrs()
    for attr in var.ncattrs():
    print '<<attr name>> =', attr
    print '<<attr value>> =',getattr(var,attr)

我可以通过上面的代码成功获取属性的名称/值对。现在我想获取属性的数据类型(int、float等),但是找不到这样的方法/函数,有人知道吗?我知道 netCDF C 包中有这样的 API。

4

2 回答 2

2
nci = netCDF4.Dataset(file_name,'r')
g_attdict = nci.__dict__
for k,v in g_attdict.iteritems():
  print k, type(v)      

样本输出:

comment <type 'unicode'>
mooring_site_desc <type 'unicode'>
breakout_id <type 'numpy.int32'>
ending_julian_day_number <type 'numpy.float64'>
long_name <type 'unicode'>  
...
于 2014-03-04T23:43:22.820 回答
1

如果print是变量,则会列出数据类型。要获取 numpy ,请dtype使用以下.dtype属性:

for var in root.variables.values():
    print var
    print var.dtype
于 2013-11-05T05:14:06.413 回答