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"