JSON — замена символов для запроса Rest API

#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

  1. Войдите в https://stat-xplore.dwp.gov.uk
  2. Откройте нужный набор данных и таблицу
  3. В правом верхнем углу найдите инструмент «Загрузить таблицу»
  4. В раскрывающемся списке выберите «Открыть запрос API данных (.json) и нажмите «Перейти»
  5. Это загрузит файл 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'
}