Тайм-аут австралийского бюро статистики SDMX - PullRequest
4 голосов
/ 17 февраля 2020

Я пытаюсь загрузить данные Австралийского бюро статистики, используя pandasdmx. Я могу загрузить ERP_COB с помощью SDMX без проблем, но для ERP по SA2, возраста и пола я получаю ошибку тайм-аута. Я ограничил период времени только 2018 годом, но все еще ограничиваю время. Странно то, что иногда это работает, но в основном нет. Я хотел бы попытаться ограничить параметры, такие как возраст или пол, но не уверен, как это сделать. Любая помощь будет высоко ценится.

Заранее спасибо.

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')

Ответы [ 2 ]

1 голос
/ 18 февраля 2020

Мне удалось выяснить это во многом благодаря Энтони Конгу.

Я изменил resource_id, чтобы он соответствовал URL-адресу, указанному на веб-сайте 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')
0 голосов
/ 18 февраля 2020

Если вы включите ведение журнала,

 import logging

 from pandasdmx import Request
 Agency_Code = 'ABS'
 Dataset_Id = 'ABS_ERP_ASGS2016'
 ABS = Request(Agency_Code, log_level=logging.INFO)

вы увидите, что модуль Request пытается загрузить с http://stat.data.abs.gov.au/sdmx-json/data/ABS_ERP_ASGS2016. Если вы попробуете этот URL в своем браузере, вы увидите, что вы ничего не получаете от сервера ABS.

Я не вижу проблем с вашим python кодом.

Странная вещь если нет данных за предыдущий год (2015) или последующие годы (2017, 2018). Таким образом, этот набор данных кажется странным.

Вероятно, проблема с данными. Вы можете связаться с сопровождающими pandasdmx или напрямую поговорить с ABS.

...