我正在尝试使用pandasdmx下载澳大利亚统计局的数据。我可以使用SDMX下载ERP_COB没有问题,但对于SA2,年龄和性别的ERP_COB,我得到了一个超时错误。我已经将时间限制为2018年,但我仍然在为out.The计时,奇怪的是,它有时会起作用,但大多数情况下不起作用。我想尝试限制参数,如年龄或性别,但不确定如何做到这一点。任何帮助都将不胜感激。
提前谢谢。
from pandasdmx import Request
Agency_Code = 'ABS'
Dataset_Id = 'ABS_ERP_ASGS2016'
ABS = Request(Agency_Code)
data_response = ABS.data(resource_id='ABS_ERP_ASGS2016', params={'startTime': '2018','endTime': '2018'})
def timeout(self, value):
self.client.config['timeout'] = 10000
ERP2018=data_response.write().unstack().reset_index()
ERP2018 = ERP2018[(ERP2018.REGIONTYPE =='AUS') | (ERP2018.REGIONTYPE =='STE')]
ERP2018.to_csv('c:\\Temp\\erp2018.csv')发布于 2020-02-18 07:26:39
多亏了安东尼·孔,我才弄明白了这一点。
我已经修改了resource_id,以匹配ABS网站上给出的网址,对我的请求应用一个过滤器,以允许较小的请求,并且没有超时。我还被告知如何更改ABS超时值感谢ABS工作人员。见下文。
from pandasdmx import Request
Agency_Code = 'ABS'
Dataset_Id = 'ABS_ERP_ASGS2016'
ABS = Request(Agency_Code)
ABS.client.config['timeout'] = 100000
data_response = ABS.data(resource_id='ABS_ERP_ASGS2016/ERP.3+1+2.TT+A04+A59+A10+A15+A20+A25+A30+A35+A40+A45+A50+A55+A60+A65+A70+A75+A80+8599.AUS+STE..A/all?', params={'startTime': '2009','endTime': '2018'})
ERP2018=data_response.write().unstack().reset_index()
ERP2018.to_csv('c:\\Temp\\erp2018.csv')发布于 2020-02-18 05:58:38
如果您打开日志记录,
import logging
from pandasdmx import Request
Agency_Code = 'ABS'
Dataset_Id = 'ABS_ERP_ASGS2016'
ABS = Request(Agency_Code, log_level=logging.INFO)您可以看到正在尝试从http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_ASGS2016下载Request模块。如果你在你的浏览器中尝试这个url,你会看到你没有从ABS服务器得到任何东西。
我没看到你的python代码有任何问题。
奇怪的是,没有前一年(2015)或后几年(2017,2018)的数据集。所以这个数据集看起来很奇怪。
这很可能是数据问题。您可以联系pandasdmx的维护者,也可以直接与ABS联系。
https://stackoverflow.com/questions/60256803
复制相似问题