使用Python从欧盟统计局提取数据时出现值错误

2024-06-16 14:52:58 发布

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

我正试图从欧盟统计局使用python的欧盟统计局包访问数据库

import eurostat
StartPeriod = '2012'
EndPeriod = '2017'
filter_pars = {'FREQ': ['M'], 'PRODUCT': ['220410'], 'FLOW': ['2'],'INDICATORS': ['QUANTITY_IN_100KG'],'PARTNER': ['EU28_EXTRA'],'REPORTER': ['FR']}
data = eurostat.get_sdmx_data_df('DS-645593', StartPeriod, EndPeriod, filter_pars, flags = False, verbose=True)

它适用于年度数据,但是当我尝试同样的方法处理月度数据(我知道有)时,它会给我一个值错误

header = list(s.key._fields).__add__([int(o.dim) for o in s.obs()]) # only from the last data row

ValueError: invalid literal for int() with base 10: '2012-01'

要查看数据库中的内容,我建议运行以下代码:

dims = eurostat.get_sdmx_dims('DS-645593')

product = eurostat.get_sdmx_dic('DS-645593', 'PRODUCT')
flow = eurostat.get_sdmx_dic('DS-645593', 'FLOW')
freq = eurostat.get_sdmx_dic('DS-645593', 'FREQ')
indicators = eurostat.get_sdmx_dic('DS-645593', 'INDICATORS')
partner = eurostat.get_sdmx_dic('DS-645593', 'PARTNER')
reporter = eurostat.get_sdmx_dic('DS-645593', 'REPORTER')

我猜我的变量类型是错误的,但我也不确定是哪一个导致了问题。如果您有任何见解,我将不胜感激


Tags: 数据库datagetdsproductfilterflowfreq