Power Query и API Kobo Toolbox: использование Web.Contents() для фильтрации данных, возвращаемых в Excel

Уважаемые Stack Overflowers!

НПО, в которой я работаю, необходимо подключить своих менеджеров проектов к данным опроса по оценке потребностей Kobo напрямую через Excel. Это достаточно легко. Однако этот опрос содержит тысячи отправленных материалов/строк данных, и время, необходимое для обновления соединения, слишком велико, поскольку каждая строка должна быть загружена в Excel перед фильтрацией.

KOBO Rest API позволяет запросам фильтровать запросы (https://kc.humanitarianresponse.info/api/v1/data), и я добился желаемых результатов в POSTMAN.

Я понимаю, что можно использовать Advanced Editor в Power Query с функцией Web.Contents() для фильтрации и достижения желаемого эффекта, однако до сих пор мне не удалось написать правильный синтаксис. Может ли кто-нибудь посмотреть и сказать мне, что я делаю неправильно?

Запрос, который правильно работает в POSTMAN (при использовании токена заголовка/авторизации):

      https://kc.humanitarianresponse.info/api/v1/data/814220?query={"$and": [{"assessor_details/date_of_assessment": {"$gte": "2021-08-01"}},{"assessor_details/date_of_assessment": {"$lt": "2021-09-01"}}] }

Синтаксис расширенного редактора Power Query, который не вызывает ошибки, но фактически ничего не фильтрует!:

      let
Source = Json.Document(Web.Contents("https://kc.humanitarianresponse.info/api/v1/data/814220",[Query="{“”$and“”: [{“”assessor_details/date_of_assessment“”: {“”$gte“”: “”2021-08-01“”}},{“”assessor_details/date_of_assessment“”: {“”$lt“”: “”2021-09-01“”}}] }",Headers=[Authorization="token XXXXXXX"]])),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
in
    #"Converted to Table"

1 ответ

Как и ожидалось, синтаксис Power Query для Web.Contents()был неверным.

Правильный синтаксис должен быть:

      let
 Source = Json.Document(Web.Contents("https://kc.humanitarianresponse.info/api/v1/data/814220",[Query=[query="{""$and"": [{""assessor_details/date_of_assessment"": {""$gte"": ""2021-09-01""}},{""assessor_details/date_of_assessment"": {""$lte"": ""2021-09-03""}}] }"],Headers=[Authorization="token XXXXXX"]])),
     #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error)
    
in
    #"Converted to Table"
Другие вопросы по тегам