#json #api #rest
#json #API #rest
Вопрос:
Я пытаюсь получить данные с rest-сервера WEB API.
https://stat-xplore.dwp.gov.uk/webapi/online-help/Open-Data-API.html
Который хранит данные в кубах.
Я понимаю основы и успешно извлекаю данные. Однако я хочу использовать измерение группировки почтового индекса (почтового индекса). Это измерение группирует почтовые индексы по их первым 3 символам. CF1, CF2 и т.д.
Схема имеет это в качестве определения для отправки запроса для этого измерения.
[«str:group:UC_Households:X_Geography (postcode)»]
Я предполагаю, что я должен заменить конечную часть группой почтовых индексов, которая меня интересует, и заключить группу почтовых индексов в некоторые специальные символы.
До сих пор я пытался
["str:group:UC_Households:X_Geography:CF1"]
["str:group:UC_Households:X_Geography:'CF1'"]
["str:group:UC_Households:X_Geography:#CF1#"]
["str:group:UC_Households:X_Geography:CF1%"]
["str:group:UC_Households:X_Geography#CF1#"]
["str:group:UC_Households:X_GeographyCF1"]
["str:group:UC_Households:X_Geography:CF1"]
полный JSON
{ "database" : "str:database:UC_Households",
"measures" : [ "str:count:UC_Households:V_F_UC_HOUSEHOLDS" ],
"dimensions" : [
[ "str:field:UC_Households:V_F_UC_HOUSEHOLDS:HNFAMILY_TYPE" ],
["str:group:UC_Households:X_Geography:CF1"]
]
}
Любая помощь будет оценена.
Комментарии:
1. В чем ваш вопрос?
2. Вы получили какой-либо ответ? Я тоже борюсь с этим
Ответ №1:
Как легко сгенерировать запрос JSON для Stat-Xplore API
- Войдите в https://stat-xplore.dwp.gov.uk
- Откройте нужный набор данных и таблицу
- В правом верхнем углу найдите инструмент «Загрузить таблицу»
- В раскрывающемся списке выберите «Открыть запрос API данных (.json) и нажмите «Перейти»
- Это загрузит файл JSON с параметрами для запроса, который описывает таблицу, которую вы просматриваете в своем веб-браузере. Пример показан ниже:
{
"database" : "str:database:UC_Monthly",
"measures" : [ "str:count:UC_Monthly:V_F_UC_CASELOAD_FULL" ],
"recodes" : {
"str:field:UC_Monthly:F_UC_DATE:DATE_NAME" : {
"map" : [ [ "str:value:UC_Monthly:F_UC_DATE:DATE_NAME:C_UC_DATE:202010" ] ],
"total" : false
},
"str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE" : {
"map" : [ [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE:C_UC_EMPLOYMENT:0" ], [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE:C_UC_EMPLOYMENT:1" ] ],
"total" : true
},
"str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE" : {
"map" : [ [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE:V_C_MASTERGEOG11_PARLC_TO_REGION:E14000541" ], [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE:V_C_MASTERGEOG11_PARLC_TO_REGION:E14000542" ], [ "str:value:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE:V_C_MASTERGEOG11_PARLC_TO_REGION:W07000041" ] ],
"total" : true
}
},
"dimensions" : [ [ "str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:PARLC_CODE" ], [ "str:field:UC_Monthly:F_UC_DATE:DATE_NAME" ], [ "str:field:UC_Monthly:V_F_UC_CASELOAD_FULL:EMPLOYMENT_CODE" ] ]
}
Документы конечной точки таблицы API предоставляют дополнительную информацию.
Объяснение проблемы OP
Я также пытаюсь использовать этот API. (Так получилось, что я использую requests
библиотеку Python.)
Если я сделаю запрос к /v1/table
конечной точке, где одно измерение имеет тип GROUP
(а не FIELD
)
measures=["str:count:UC_Monthly:V_F_UC_CASELOAD_FULL"],
dimensions=[["str:field:UC_Monthly:F_UC_DATE:DATE_NAME"],
["str:group:UC_Monthly:X_Geography (residence-based)"]
]
затем эта ошибка 422 возвращается в HTTP-ответе:
requests.exceptions.HTTPError: 422 Client Error: Unprocessable Entity for url: https://stat-xplore.dwp.gov.uk/webapi/rest/v1/table
Это полезная нагрузка ответа, в котором более подробно описывается ошибка:
{
"message":"Unexpected schema component type 'group' for 'str:group:UC_Monthly:X_Geography (residence-based)'. Expected one of type [field, valueset, udf].",
"errorType":"UNEXPECTED_SCHEMA_COMPONENT_TYPE_EXCEPTION",
"component" : "str:group:UC_Monthly:X_Geography (residence-based)",
"type" : "group",
"expectedTypes" : [ "field", "valueset", "udf" ]
}
Если я правильно понимаю, он не жалуется на форматирование строки, он говорит, что ожидаются только FIELD
VALUESET
UDF
объекты и .
Если вы посмотрите на schema
конечную точку, можно получить информацию о возможных группах, полях и т. Д.
{
'id': 'str:group:UC_Monthly:X_Geography %28postcode%29',
'label': 'Geography (postcode)',
'location': 'https://stat-xplore.dwp.gov.uk/webapi/rest/v1/schema/str:group:UC_Monthly:X_Geography %28postcode%29',
'type': 'GROUP'
}