web-dev-qa-db-fra.com

Chargement d'un fichier json dans Power Query

J'essaie de charger un fichier JSON que j'ai extrait de data.gov dans Power Query à des fins de manipulation, mais je ne vois pas comment obtenir de Power Query pour convertir le fichier JSON au format tabulaire.

Existe-t-il un moyen de convertir JSON en table dans Power Query sans écrire de requête personnalisée?

7
CountZero

Les données JSON apparaissent souvent comme des enregistrements dans des listes dans des enregistrements (et d'autres variantes). Vous pouvez généralement utiliser l'interface utilisateur PQ pour développer ces objets sans écrire de code.

Voici un exemple de point de terminaison JSON: http://api.nobelprize.org/v1/laureate.json

Après avoir exécuté le fichier "À partir du Web", l'étape suivante consiste à cliquer sur le bouton Outils d'enregistrement/Convertir/dans un tableau du ruban PQ.

Cela renvoie une seule ligne, la deuxième colonne (Value) contenant une liste. Cliquez sur le bouton Développer en regard de "Valeur" pour développer la liste.

Cela renvoie plusieurs lignes, chaque seconde colonne (Value) contenant maintenant un enregistrement. Développez l'enregistrement pour obtenir les colonnes de données dans un format tabulaire.

Notez que cette disposition JSON particulière est plus approfondie - voir la colonne Valeur.prizes à l'extrême droite. Vos étapes exactes peuvent varier en fonction de votre entrée JSON et de vos exigences en matière de sortie.

Voici le code complet pour accéder à une table - chaque étape a été générée en cliquant sur l'interface utilisateur.

let
    Source = Json.Document(Web.Contents("http://api.nobelprize.org/v1/laureate.json")),
    #"Converted to Table" = Record.ToTable(Source),
    #"Expanded Value" = Table.ExpandListColumn(#"Converted to Table", "Value"),
    #"Expanded Value1" = Table.ExpandRecordColumn(#"Expanded Value", "Value", 
        {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode", 
         "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"},
        {"id", "firstname", "surname", "born", "died", "bornCountry", "bornCountryCode",
         "bornCity", "diedCountry", "diedCountryCode", "diedCity", "gender", "prizes"})
in
    #"Expanded Value1"
8
Mike Honey