接收.values键为“AttributeError:'list'对象没有属性“values”的字典项时出现问题

2024-03-28 18:37:10 发布

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

gribfile='gfs20191010.0p25' #file containing 384 hours of forecast data for variable Geopotential Height
grbs=pygrib.open(gribfile)
grb1=grbs.select(name='Geopotential Height')[0:24]
day1 = grb1.values

运行上述代码时,出现以下错误:

AttributeError: 'list' object has no attribute 'values'

当只选择列表中的第一项时,.values键将起作用,如下所示:

grb1 = grbs.select(name='Geopotential Height')[0]

但当我这么做的时候就不行了

grb1 = grbs.select(name='Geopotential Height')[0:24]

我知道对于.values键,格式是指令值,但我不知道如何检索前24个列表项中的数据。 我的目标是将所选变量(位势高度)的前24个文件作为numpy数组接收,但为了做到这一点,我需要能够使用.values提取每个文件中包含的信息。你知道吗

我一直在关注pygrib的文档,可以在:https://jswhit.github.io/pygrib/docs/


Tags: 文件name列表selectfilevaluesheightcontaining
1条回答
网友
1楼 · 发布于 2024-03-28 18:37:10

根据您提供的文档链接:

select returns a list of gribmessage instances.

所以,当你这么做的时候:

grb1=grbs.select(name='Geopotential Height')[0:24]

您将获取select(这是一个列表)的结果,然后对该列表进行切片(这将生成另一个列表)。然后将切片列表绑定到grb1。因此,grb1是gribmessage实例的列表。你知道吗

正如Pyhton异常所述,列表没有values属性。然而,一个gribmessage,大概是这样。你知道吗

不确定这是否能让您更接近预期的结果,但您可以使用列表理解从列表中的gribmessage实例获取value

values = [grb.values for grb in grb1]

相关问题 更多 >