Ich habe einige json
auf einer Website, die ich mit der power query
-Option from web
in Excel
konvertieren möchte. Aber ich hatte ein kleines Problem. Mein json
sieht folgendermaßen aus:
[
{
"id" : 1,
"visitors" : 26,
"some_number" : 1,
"value" : 3500
},
{
"id" : 2,
"visitors" : 21,
"some_number" : 5,
"value" : 2000
}
]
aber wenn ich from web
verwende, bekomme ich folgendes:
Ich kann Drilldowns in einen Datensatz ausführen, ihn in eine Tabelle konvertieren, transponieren und die erste Zeile als Kopfzeile verwenden, aber dann bekomme ich nur eine Zeile. Wie bekomme ich alle meine Daten in die Tabelle und nicht nur eine Zeile?
Zuerst würde ich das Menü List Tools/Transform verwenden (es sollte automatisch ausgewählt werden) und auf die Schaltfläche To Table klicken. Dadurch erhalten Sie eine einspaltige Tabelle mit 2 Zeilen. Dann würde ich auf die kleine Schaltfläche "Erweitern" klicken - sie wird in den Spaltenüberschriften rechts neben "Spalte1" angezeigt. Deaktivieren Sie die Option Use original column name ... und Sie erhalten eine Tabelle mit 4 Spalten und 2 Zeilen.
Hier ist das vollständige Skript, das ich erstellt habe:
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"
Die Funktion Table.FromRecords()
ist für diese Beispieldaten geeignet:
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
Sie müssen die Liste zuerst in eine Tabelle konvertieren. Anschließend können Sie die Datensatzspalte erweitern und von dort fortfahren. Wenn Sie kein Glück haben, können Sie einen Blick auf dieses Video werfen, das ich kürzlich für eine ähnliche Frage erstellt habe.