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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Problema de análisis JSON (se muestra la columna v de la jerarquía superior en lugar de todas las columnas)

Hola a todos,


Soy nuevo Power BI y tengo problemas para analizar datos JSON desde una API SAAS.

Cuando hago clic derecho en la columna con datos JSON, la transformo a JSON y luego intento expandir esos datos JSON en columnas, solo veo una columna "v" en lugar de las columnas para las que necesito valores. Vea la captura de pantalla a continuación:

Shahnawaz_0-1652975837272.png

Cuando hago clic en Aceptar en él e intento expandir los datos en columnas nuevamente. Veo otra columna disponible "f" y si sigo haciéndolo, eventualmente obtengo dos opciones para seleccionar "Expandir a nuevas filas" y "Extraer valores..". Cuando expando a nuevas filas, obtengo el siguiente error:

Shahnawaz_1-1652976012365.png

Y si intento "Extraer valores" y selecciono "Ninguno" como delimitado, ya que no estoy seguro de qué delimitador usar. Recibo el siguiente error:

Shahnawaz_2-1652976119476.png

Uno de los registros en la columna que estoy tratando de analizar en JSON está estructurado de esta manera:

{"v":{"f":[{"v":null},{"v":null},{"v":null},{"v":"AnonymysedPhoneNumber"},{"v":null},{"v":null},{"v":"AnonymisedName"},{"v":null},{"v":null},{"v":"0"},{"v":null},{"v":null},{"v":null},{"v":null},{"v":"AnonymisedEmailAdress"},{"v":"AnonymisedID/Key"},{"v":null}]}}

Cualquier orientación sería muy apreciada, gracias.

Shah Nawaz

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Gracias Rohit,

No, estoy obteniendo datos de Databse "Google BigQuery" conectándome a él a través de mi cuenta de gmail. No hay opción para seleccionar "JSON" en el momento de cargar o transformar datos. Se ve como según la captura de pantalla a continuación:

Shahnawaz_0-1653033358275.png

Luego hago clic derecho en la columna con algunos datos JSON, por ejemplo: columna "Primary_Contact", hago clic en "Transformar datos" y hago clic en "JSON". Esto luego me muestra "Grabar" en esta columna y luego, cuando intento expandirla, solo veo una columna "v" según las capturas de pantalla de mi primera publicación.

Hola @Shahnawaz

Por favor, pruebe esto:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wqo5RKotRsgJSaUAqGsrNK83JqdUhyIlRcszLz6vMrSxOTQnIyM9L9SvNTUotilEiQW8mUK9fYm4qkZoMSDbcNTcxM8cxJaUotbgYSTOyEk8Xfe/UShRJdGtia2uVYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [jsonTag = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"jsonTag", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Json.Document([jsonTag])),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"jsonTag"}),
    #"Expanded Custom" = Table.ExpandRecordColumn(#"Removed Columns", "Custom", {"v"}, {"Custom.v"}),
    #"Expanded Custom.v" = Table.ExpandRecordColumn(#"Expanded Custom", "Custom.v", {"f"}, {"Custom.v.f"}),
    #"Expanded Custom.v.f" = Table.ExpandListColumn(#"Expanded Custom.v", "Custom.v.f"),
    #"Expanded Custom.v.f1" = Table.ExpandRecordColumn(#"Expanded Custom.v.f", "Custom.v.f", {"v"}, {"Custom.v.f.v"})
in
    #"Expanded Custom.v.f1"


Lo que he hecho aquí es agregar su muestra json como una fila como estaba en su captura de pantalla. Luego agregué una nueva columna y la analizaré como un documento json usando la función Json.Document en Power Query.
Esto me permite replicar los pasos generados automáticamente por Power Query en mi ejemplo anterior.

rohit_singh_1-1653052538908.png

rohit_singh_2-1653052626760.png

Este es el resultado final:

rohit_singh_3-1653052646798.png

Atentamente

Rohit


Marque esta respuesta como la solución si resuelve su problema.
¡Aprecia sus felicitaciones! 😊

Muchas gracias Rohit,

Repliqué sus instrucciones anteriores, pero no estoy recibiendo las mismas reglas. Recibo el error "Expression.Error: No se encontró el campo 'jsonTag' del registro.

Por favor, vea la captura de pantalla a continuación:

Shahnawaz_0-1653055708062.png

Seguí los siguientes pasos:

1. En un informe de power bi en blanco/nuevo, introduzca datos JSON de ejemplo en la primera fila de la columna1 haciendo clic en "Introducir datos" en las herramientas de tabla.

2. Abrió power query Editor y agregó la columna Personalizada con fórmula =[Columna1] y presione OK

3. Esto me dio la fórmula similar a la tuya que es: = Table.AddColumn(#"Changed Type", "Custom", each [Column1])

4. Reemplazó [Column1] en la fórmula con Json.Document([jsonTag]) y presionó la tecla Enter. La fórmula ahora dice = Table.AddColumn(#"Changed Type", "Custom", each Json.Document([jsonTag]))

Hola @Shahnawaz ,

Debe cambiar el nombre de la columna a "jsonTag" antes de poder agregar la nueva columna.

En su captura de pantalla, se refiere a la columna "jsonTag", pero su columna se llama "Columna1"

rohit_singh_0-1653057029777.png


Atentamente

Rohit

Lo siento Rohit, no me di cuenta de que jsonTag era el nombre de la columna. Intenté de nuevo cambiar el nombre de la columna a jsonTag y todavía no funciona. Consulte los pasos en las capturas de pantalla a continuación:

1. Después de usar la fórmula resaltada a continuación:

Shahnawaz_0-1653058115804.png

2. No generó automáticamente ninguno de los pasos como lo hizo para usted. Ahora, cuando intento expandir el colum personalizado, muestra dos columnas y el problema sigue siendo el mismo.

Shahnawaz_1-1653058235173.png

Hola @Shahnawaz ,

No generará automáticamente los pasos por usted. Consulte lo que escribí "Esto me permite replicar los pasos generados automáticamente por Power Query en mi ejemplo anterior".

Tendrá que agregar los pasos de reminado manualmente desde el código que le envié anteriormente.

Atentamente

Rohit

Syndicate_Admin
Administrator
Administrator

@Shahnawaz ,

Guardé los datos de ejemplo en un archivo de prueba denominado "Test.txt" y los cargué en Power Query.

Así es como se ve el archivo

rohit_singh_2-1652977679657.png

Luego cargué este archivo en Power Query usando JSON como origen

rohit_singh_1-1652977650783.png

Power Query generó automáticamente una serie de pasos y analizó automáticamente la siguiente estructura de la fila de datos

rohit_singh_4-1652977853426.png

rohit_singh_3-1652977739846.png

let
    Source = Json.Document(File.Contents("Test.txt")),
    #"Converted to Table" = Table.FromRecords({Source}),
    #"Expanded v" = Table.ExpandRecordColumn(#"Converted to Table", "v", {"f"}, {"v.f"}),
    #"Expanded v.f" = Table.ExpandListColumn(#"Expanded v", "v.f"),
    #"Expanded v.f1" = Table.ExpandRecordColumn(#"Expanded v.f", "v.f", {"v"}, {"v.f.v"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Expanded v.f1",{{"v.f.v", type any}})
in
    #"Changed Type"

¿Está utilizando pasos similares para analizar sus datos?

Atentamente

Rohit

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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