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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
dmbd1904
Helper III
Helper III

Anexar archivos Json de una lista de URL dinámicas

¿Es posible? La estructura de los archivos Json es coherente

1 ACCEPTED SOLUTION

No @dmbd1904

Sí, podrías hacer esto en una sola operación. Primero puede conectarse a un archivo Json como un archivo de ejemplo, transformarlo y convertirlo en una consulta de función personalizada en el Editor avanzado como se muestra a continuación. Use VarURL para reemplazar su cadena de dirección URL original en Source.

(VarURL as text)=>
let
    Source = Json.Document(Web.Contents(VarURL)),
    #"Converted to Table" = Record.ToTable(Source)
in
    #"Converted to Table"

A continuación, cree una tabla que contenga todas las direcciones URL de una columna. Puede usar Excel/CSV o cualquier otro tipo de archivo para mantener y actualizar las direcciones URL.

En esta consulta de tabla de URL, haga clic en Agregar columna > Invocar función personalizada, use la consulta de función anterior en el campo de consulta Función y la columna JsonURL como campo VarURL.

Por último, expanda la nueva columna de tabla y obtendrá datos de todas las direcciones URL.

121502.jpg

Además, si desea combinar los datos como en el formato siguiente, puede pivotar las columnas en la consulta de archivo de ejemplo antes de convertirlo en una consulta de función.

121503.jpg

Aquí hay una demo PBIX que podría descargar. Por favor, hágamelo saber si esto ayuda.

Equipo de apoyo a la comunidad _ Jing Zhang
Si este post ayuda,por favor considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo.

View solution in original post

8 REPLIES 8
PhilipTreacy
Super User
Super User

No @dmbd1904

Puede almacenar la lista de direcciones URL en una tabla, una columna, una lista, una tabla de Excel, como resultado de otra consulta o lo que sea. Puede obtener todas las consultas de una sola vez con este código (en este ejemplo URLList almacena la lista de direcciones URL)

Source = List.Transform( URLList, each Json.Document(Web.Contents("https://xxxxx.com"))) 

Las transformaciones aplicadas después de este paso afectarán a todos los JSON recibidos para que pueda agregar más direcciones URL según sea necesario y no necesite cambiar la consulta.

saludos

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!


dmbd1904
Helper III
Helper III

Hola, para que pueda crear consultas individuales para extraer los datos de Json para cada URL. Me pregunto si hay una manera de hacer esto en una sola operación. La lista de direcciones URL seguirá aumentando y esperaba evitar la necesidad de crear una nueva consulta y luego anexarla a la tabla 'maestro' cada vez

No @dmbd1904

Sí, podrías hacer esto en una sola operación. Primero puede conectarse a un archivo Json como un archivo de ejemplo, transformarlo y convertirlo en una consulta de función personalizada en el Editor avanzado como se muestra a continuación. Use VarURL para reemplazar su cadena de dirección URL original en Source.

(VarURL as text)=>
let
    Source = Json.Document(Web.Contents(VarURL)),
    #"Converted to Table" = Record.ToTable(Source)
in
    #"Converted to Table"

A continuación, cree una tabla que contenga todas las direcciones URL de una columna. Puede usar Excel/CSV o cualquier otro tipo de archivo para mantener y actualizar las direcciones URL.

En esta consulta de tabla de URL, haga clic en Agregar columna > Invocar función personalizada, use la consulta de función anterior en el campo de consulta Función y la columna JsonURL como campo VarURL.

Por último, expanda la nueva columna de tabla y obtendrá datos de todas las direcciones URL.

121502.jpg

Además, si desea combinar los datos como en el formato siguiente, puede pivotar las columnas en la consulta de archivo de ejemplo antes de convertirlo en una consulta de función.

121503.jpg

Aquí hay una demo PBIX que podría descargar. Por favor, hágamelo saber si esto ayuda.

Equipo de apoyo a la comunidad _ Jing Zhang
Si este post ayuda,por favor considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo.

Hola @v-jingzhang ust un problema. Cuando incluyo la función personalizada en Flujos de datos obtengo el siguiente mensaje....

una o más entidades hace referencia a un origen de datos dinámico

¿Sabes cómo resolver?

Consultar2 ?

(VarURL como texto)>
Dejar
Origen: Json.Document(Web.Contents(VarURL))
En
"Fuente"

Consultar1 ?

Dejar
Source: Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("rc5BboJAFADQu7joqoEUmQgmxmAtRlER1BY0xozwg+KMf5z5lOrpu+36+7wRvv++ciZTp27YB/Q3asZ4NQWEVKG2QCjTqYyXwxexX1qBQ05GXXBFoS53VsMVyMLmwuxu 6QeSQrxzZX8neU/8zbNrtlC3NgdvAl5VRFtvnbTrGC+8iu5hdBZyXjENy/YkGpoUBu8dQ6v/zBKF1evTWLzoMhPZliX0555wLq3EhQsQ0IObc7mqfshxsCc+BJ9nmaBm+wwqsd56QR/R4df", BinaryEncoding.Base64), Compression.Deflate)), let _t ((tipo de texto que acepta valores NULL) meta [Serialized.Text ? true]) en la tabla de tipos [URL - _t]),
"Función personalizada invocada" - Table.AddColumn(Source, "Query2", cada Query2([URL])),
"Consulta expandida2" - Table.ExpandListColumn(-"Función personalizada invocada", "Query2"),
"Queryed Query1" á Table.ExpandRecordColumn(-"Queryed Query2", "Query2", "fld_uid", "fld_nodeid", "fld_id", "fld_date_raised", "fld_originator", "fld_organisation", "fld_type", "fld_zone", "fld_level", "fld_apt_number", "fld_area", "fld_description", "fld_assigned_to_org", "fld_assigned_to", "fld_target_date", "fld_date_closed", "fld_timestamp", "fld_deletetime", "fld_phase", "fld_street", "fld_unit_no", "fld_uid", "fld_nodeid", "fld_id", "fld_date_raised", "fld_originator", "fld_organisation", "fld_type", "fld_zone", "fld_level", "fld_apt_number", "fld_area fld_apt_number", "fld_apt_number", <5>", "fld_description", "fld_assigned_to_org", "fld_assigned_to", "fld_target_date", "fld_date_closed", "fld_timestamp", "fld_deletetime", "fld_phase", "fld_street", "fld_unit_no")
En
"Consulta ampliada1"

Hola @dmbd1904, también me encontré con este problema. La solución se encuentra en el siguiente vínculo. Por favor, pruebe la solución de Anonymous. Funcionó bien a mi lado.

Resuelto: Re: Flujo de datos: el uso de la función M convierte el espacio de trabajo en... - Comunid...

Gracias a todos por las respuestas. @v-jingzhang Me las arreglé para seguir su enfoque y está funcionando, así que gracias por que esta es una de las mejores cosas que he aprendido en Power BI este año!

v-jingzhang
Community Support
Community Support

@dmbd1904 No estoy seguro. Si los archivos Jsons se pueden importar a Power BI desde estas direcciones URL, es probable que pueda anexarlos. ¿Ha intentado conectarse a los archivos Json a través de direcciones URL?

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.