多个错误:值未连接到dictionary str(键),需要用所述值填充空字典

2024-10-03 23:24:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要循环创建包含值(float32)的字典,最终我可以将其放入一个字典中,其中键是名称,值是一个4D数组,这些值进入第一个维度

尝试打印出“turb”、“gtg”、“level”和“climo\u grib”字典的形状和类型,以确保它们都是相同的。好像想不通

validfiles00 = glob.glob(gribdir + '*18f0*')
validfiles06 = glob.glob(gribdir + '*00f0*')
validfiles12 = glob.glob(gribdir + '*06f0*')
validfiles18 = glob.glob(gribdir + '*12f0*')

levels = [1000,850,700,500,400,300,250,200,150,100]
hrs = ['00','06','12','18']
gtg = collections.OrderedDict()

for hr in hrs:
    for lev in levels:
        gtg['gtg{0}_{1}'.format(hr,lev)] = np.empty((len('validfiles'+hr), len(levels), 721, 1440),dtype=np.float32)

index = 0
climo_grib = {}
level = {}
turb = {}

for grb in validfiles00:
    for lev in levels:
        for hr in hrs:
            climo_grib['climo_grib{0}_{1}'.format(hr,lev)] = pygrib.index(grb,"level")
            for cg in climo_grib:
                level['level{0}_{1}'.format(hr,lev)] = climo_grib[cg].select(level=lev)
            for l in level:
                turb['turb{0}_{1}'.format(hr,lev)] = level.values()
            for t in turb:
                for g in gtg:
                    gtg[g][index:,:,:] = turb[t]

                    index = index + 1

这个特定的代码顺序会产生错误:“ValueError:用序列设置数组元素。”

最终,我需要一个字典(比如上面的gtg),或者一些集合来调用from,其中4D数组作为值,循环中的值作为第一维。例如,如果我要调用gtg['gtg00\u 1000'],我想得到实际的浮点数作为输出。 提前谢谢


Tags: informatforindex字典hrlevelglob