Conversión de datos JSON en una tabla PowerBI

Un usuario Pregunto ✅

tilldunk

Hola,

Obtuve algunos datos del almacenamiento de la tabla IOT, incluida una columna con datos JSON, como se muestra a continuación.

1.PNG

Quiero extraer los datos de la cuarta columna y comencé expandiendo el contenido y luego analicé JSON.

2.PNG3.PNG

Lo que obtuve es, como puede ver, una columna de listas. Ahora puedo agregar cada lista como una nueva consulta y obtener el formato (datos visibles) que quiero:

4.PNG

Sin embargo, mi objetivo es convertir toda la columna de listas a la vez, ya que extraer los valores fila por fila lleva bastante tiempo

(agregando las listas como nuevas consultas y finalmente agregando las consultas agregadas a una nueva tabla).

5.PNG

Mi pregunta: ¿hay algún paso / código simple (editor avanzado) que no sé, porque tendré que lidiar con muchas más filas como solo 18 en este ejemplo?

Cualquier ayuda será muy apreciada.

atentamente,

Hasta

Hola @tilldunk,

Intento probar bu obteniendo la fecha de un archivo json. Importo los datos y hago clic con el botón derecho en la columna de registro-> A la tabla de la siguiente manera.

1.PNG

Luego haga clic en columnas expandidas, obtenga la columna de la lista, luego haga clic en «Expandir a nuevas filas» -> columna expandida, obtengo el resultado esperado.

3.png

Aquí está mi declaración de consulta.

let
    Source = Json.Document(File.Contents("C:Usersv-huizhnDownloadsgenerated.json")),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"UserId", "id", "tipSecurableSet"}, {"Column1.UserId", "Column1.id", "Column1.tipSecurableSet"}),
    #"Expanded Column1.tipSecurableSet" = Table.ExpandRecordColumn(#"Expanded Column1", "Column1.tipSecurableSet", {"id", "Clients"}, {"Column1.tipSecurableSet.id", "Column1.tipSecurableSet.Clients"}),
    #"Expanded Column1.tipSecurableSet.Clients" = Table.ExpandListColumn(#"Expanded Column1.tipSecurableSet", "Column1.tipSecurableSet.Clients"),
    #"Expanded Column1.tipSecurableSet.Clients1" = Table.ExpandRecordColumn(#"Expanded Column1.tipSecurableSet.Clients", "Column1.tipSecurableSet.Clients", {"@odata.type", "typeId", "Entityids", "Clientid"}, {"Column1.tipSecurableSet.Clients.@odata.type", "Column1.tipSecurableSet.Clients.typeId", "Column1.tipSecurableSet.Clients.Entityids", "Column1.tipSecurableSet.Clients.Clientid"})
in
    #"Expanded Column1.tipSecurableSet.Clients1"

Para su escenario, no puedo reproducirlo. ¿Le importaría compartir la tabla de muestra para un análisis más detallado?

Atentamente,
Angelia

apo1979prio

¡¡¡Hola!!!
Solo 7 pasos para OBTENER JSON:
dejar
Fuente = SharePoint.Files («https: // Mysharepoint», [ApiVersion = 15]),
Step01 = Table.SelectRows (Fuente, cada Text.StartsWith ([Folder Path], «https: // Mysharepoint_SearchFolder /»)),
Step02 = Table.SelectColumns (Step01, {«Contenido», «Nombre», «Extensión», «Ruta de la carpeta»}),
Step03 = Table.SelectRows (Step02, cada [Extension] = «.json»),
Step04 = Table.SelectColumns (Step03, {«Content»}),
Step05 = Table.AddColumn (Step04, «Json», cada Json.Document ([Content], 65001)),
Step06 = Table.SelectColumns (Step05, {«Json»}),
Step07 = Table.ExpandListColumn (Step06, «Json»)
en
Paso 07

Hola @tilldunk,

Intento probar bu obteniendo la fecha de un archivo json. Importo los datos y hago clic derecho en la columna de registro-> A la tabla de la siguiente manera.

1.PNG

Luego haga clic en columnas expandidas, obtenga la columna de la lista, luego haga clic en «Expandir a nuevas filas» -> columna expandida, obtengo el resultado esperado.

3.png

Aquí está mi declaración de consulta.

let
    Source = Json.Document(File.Contents("C:Usersv-huizhnDownloadsgenerated.json")),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"UserId", "id", "tipSecurableSet"}, {"Column1.UserId", "Column1.id", "Column1.tipSecurableSet"}),
    #"Expanded Column1.tipSecurableSet" = Table.ExpandRecordColumn(#"Expanded Column1", "Column1.tipSecurableSet", {"id", "Clients"}, {"Column1.tipSecurableSet.id", "Column1.tipSecurableSet.Clients"}),
    #"Expanded Column1.tipSecurableSet.Clients" = Table.ExpandListColumn(#"Expanded Column1.tipSecurableSet", "Column1.tipSecurableSet.Clients"),
    #"Expanded Column1.tipSecurableSet.Clients1" = Table.ExpandRecordColumn(#"Expanded Column1.tipSecurableSet.Clients", "Column1.tipSecurableSet.Clients", {"@odata.type", "typeId", "Entityids", "Clientid"}, {"Column1.tipSecurableSet.Clients.@odata.type", "Column1.tipSecurableSet.Clients.typeId", "Column1.tipSecurableSet.Clients.Entityids", "Column1.tipSecurableSet.Clients.Clientid"})
in
    #"Expanded Column1.tipSecurableSet.Clients1"

Para su escenario, no puedo reproducirlo. ¿Le importaría compartir la tabla de muestra para un análisis más detallado?

Atentamente,
Angelia

ImkeF

Hola Till,

¿Intentaste hacer clic en los botones de expansión ?:

PBI_ExpandJsron2.jpg

tilldunk

En respuesta a ImkeF

Sí, lo hice. Me dará esta tabla:

6.PNG

tilldunk

En respuesta a tilldunk

Bueno, tengo mi culpa. Hay esta fila de «Mensaje de prueba» que está arruinando todo. Eliminé la fila, expandí la columna y obtuve los resultados deseados.

Muchas gracias por tu ayuda, Till

ImkeF

En respuesta a tilldunk

Oh, ya veo: normalmente vería otro par de flechas de expansión (si todas las filas tuvieran el registro en ellas).

Esta es la solución alternativa: http: //www.thebiccountant.com/2017/07/25/how-to-expand-a-column-that-cannot-be-expanded-in-power-bi -…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *