web-dev-qa-db-fra.com

Json à Excel en utilisant la requête de puissance

J'ai un json sur un site Web que je veux convertir en Excel en utilisant l'option power query, l'option from web. Mais j'ai rencontré un petit problème. Ma json ressemble à ceci:

[
    {
        "id" : 1,
        "visitors" : 26,
        "some_number" : 1,
        "value" : 3500
    },
    {
        "id" : 2,
        "visitors" : 21,
        "some_number" : 5,
        "value" : 2000
    }
]

mais quand j'utilise from web je reçois ceci:

 enter image description here

Je peux explorer un enregistrement, le convertir en tableau, le transposer et utiliser la première ligne comme en-tête, mais je n’obtiens qu’une seule ligne. Comment puis-je obtenir toutes mes données à la table et pas seulement une ligne?

16
kemis

D'abord, j'utiliserais le menu Liste Outils/Transformer (il devrait être automatiquement sélectionné), puis cliquez sur le bouton To Table . Cela vous donnera un tableau à une colonne avec 2 lignes. Ensuite, je clique sur le petit bouton Développer - il apparaîtra dans les en-têtes de colonne, juste à droite de "Column1". Décochez l'option Utiliser le nom de colonne d'origine ... et vous obtiendrez un tableau de 4 colonnes et 2 lignes.

Voici le script complet que j'ai généré:

let
    Source = Json.Document(File.Contents("C:\Users\Mike.Honey\Downloads\json2.json")),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column2" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "visitors", "some_number", "value"}, {"id", "visitors", "some_number", "value"})
in
    #"Expanded Column2" 
19
Mike Honey

La fonction Table.FromRecords() convient à cet exemple de données:

let 
    Source = Json.Document("[{""id"": 1, ""visitors"": 26, ""some_number"": 1, ""value"": 3500}, {""id"": 2, ""visitors"": 21, ""some_number"": 5, ""value"": 2000}]"),
    AsTable = Table.FromRecords(Source)
in
    AsTable

 Showing the example query in use in the Query Editor and Advanced Editor interfaces

10
Robert K. Bell

Vous devez d’abord convertir la liste en une table, puis vous pouvez développer la colonne d’enregistrement et procéder à partir de là. Si vous n’avez pas de chance, vous pouvez jeter un oeil à cette vidéo que j’ai récemment créée pour une question similaire.

0
MarcelBeug