Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
TSantoro99
New Member

Escape Special Characters '[' y ']' en la consulta de API

Intento configurar una consulta de API con rutas de acceso relativas para que se pueda ejecutar desde Power BI (web, no desde escritorio). Desafortunadamente, la API con la que estoy trabajando utiliza '[' y ']' como parte de su filtrado de parámetros requerido. 😓

¿Alguien sabe cómo escapar de estos caracteres para que se ejecute el siguiente fragmento de código y no se produzca un error de "Identificador no válido"?

    Source = Json.Document(Web.Contents("https://secure.fleetio.com/api/v1/service_entries?q[date_gt]=2019-09-01&q[s]=date+desc&page=" & page, 
    [
        Headers=[Authorization="Token token=""XXXXXXXXXX""", #"Account-Token"="XXXXXX"]
        RelativePath="service_entries"
        Query=[
            q[data_gt]="2019-09-01",
            q[s]="date+desc",
            page="" + page        ]    
    ])),

3 REPLIES 3
TSantoro99
New Member

Gracias por las respuestas. Phil, su diseño parecía funcionar para consultar dentro de la versión de escritorio, pero por desgracia, todavía estaba lanzando un error al intentar configurar una actualización automática desde el PowerBi en línea debido a la naturaleza dinámica de la consulta. (Creo que esa es la redacción que usaron....).

Creo que esto seguirá siendo un rompecabezas por un tiempo.

¡Gracias por tu ayuda!

PhilipTreacy
Super User
Super User

Hola @TSantoro99

En Power Query puede escapar caracteres especiales en cadenas utilizando su código Unicode, por ejemplo, LB , "(005B)", y en una dirección URL introducida en un explorador se puede utilizar %5B y %5D para reemplazar [y ], pero no puedo conseguir que esto funcione con Web.Contents. Cualquier intento de utilizar caracteres especiales, secuencias de escape o cadenas da y error.

Por lo tanto, es posible que tenga que reconstruir la consulta para permitir esto, así;

let 

    Param1 = "q[data_gt]=2019-09-01",
    Param2 = "&q[s]=date+desc",
    Param3 = "&page=" & page,

    FullRequest = "https://secure.fleetio.com/api/v1/?"&Param1&Param2&Param3,

    HTTPHeader = [RelativePath="service_entries",

                  Headers = [#"Authorization"="Token token=""XXXXXXXXXX""", #"Account-Token"="XXXXXX"]],

    Source = Json.Document(Web.Contents("https://secure.fleetio.com/api/v1/?"&Param1&Param2&Param3, HTTPHeader))

in
    Source

Tenga en cuenta que el valor de page no está definido en esa consulta.

Phil


Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.



Did I answer your question? Then please mark my post as the solution.
If I helped you, click on the Thumbs Up to give Kudos.


Blog :: YouTube Channel :: Connect on Linkedin


Proud to be a Super User!


sevenhills
Super User
Super User

Trate de ver si funciona

Puede escapar [ con %5B y ] con %5D

basado en https://www.w3schools.com/tags/ref_urlencode.asp

también revise el blog, para escapar de los personajes especiales

https://blog.crossjoin.co.uk/2018/03/05/character-escape-sequences-in-m/

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors