web-dev-qa-db-fra.com

Analyse d'une colonne .json dans Power BI

Je souhaite analyser une colonne .json via Power BI. J'ai importé les données directement du serveur et j'ai une colonne .json dans les données avec d'autres colonnes. Existe-t-il un moyen d'analyser cette colonne json?

Exemple:

       Key      IDNumber    Module      JsonResult  
       012      200         Dine        {"CategoryType":"dining","City":"mumbai"',"Location":"all"} 
       97       303         Fly         {"JourneyType":"Return","Origin":"Mumbai (BOM)","Destination":"Chennai (MAA)","DepartureDate":"20-Oct-2016","ReturnDate":"21-Oct-2016","FlyAdult":"1","FlyChildren":"0","FlyInfant":"0","PromoCode":""} 
       276      6303        Stay        {"Destination":"Clarion Chennai","CheckInDate":"14-Oct-2016","CheckOutDate":"15-Oct-2016","Rooms":"1","NoOfPax":"2","NoOfAdult":"2","NoOfChildren":"0"}

Je souhaite conserver les autres colonnes et également obtenir les colonnes analysées simplifiées.

17
eclairs

Utilisez la fonction Json.Document comme ceci

let
    ...
    your_table=imported_the_data_directly_from_the_server,
    json=Table.AddColumn(your_table, "NewColName", each Json.Document([JsonResult]))
in
    json

Et puis développez l'enregistrement en table à l'aide de Table.ExpandRecordColumn

Ou en cliquant sur ce bouton

enter image description here

12
Sergey Lossev

Il existe un moyen plus simple de le faire, dans l'éditeur de requête sur la colonne que vous souhaitez lire en tant que json:

  • Clic droit sur la colonne
  • Sélectionnez Transformer> JSON

la colonne devient alors un enregistrement que vous pouvez fractionner dans chaque propriété du json en utilisant le bouton dans le coin supérieur droit.

split columns

32

Utilisez la fonction Json.Document() pour convertir la chaîne en données Json.

let
    Source = Json.Document(Json.Document(Web.Contents("http://localhost:18091/pools/default/buckets/Aggregation/docs/AvgSumAssuredByProduct"))[json]),
    #"Converted to Table" = Record.ToTable(Source),
    #"Filtered Rows" = Table.SelectRows(#"Converted to Table", each not Text.Contains([Name], "type_")),
    #"Renamed Columns" = Table.RenameColumns(#"Filtered Rows",{{"Name", "AvgSumAssuredByProduct"}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Renamed Columns",{{"Value", type number}})
in
    #"Changed Type"
1
KARTHIKEYAN.A