Skip to content

Instantly share code, notes, and snippets.

@stevedep
Created January 1, 2023 13:07
Show Gist options
  • Save stevedep/adf215e1a5009a808f0004e145458b87 to your computer and use it in GitHub Desktop.
Save stevedep/adf215e1a5009a808f0004e145458b87 to your computer and use it in GitHub Desktop.
let
Source = Json.Document(File.Contents("C:\Users\username\Downloads\eneco.json")),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"data"}, {"data"}),
#"Expanded data" = Table.ExpandRecordColumn(#"Expanded Column1", "data", {"metadata", "usages"}, {"data.metadata", "data.usages"}),
#"Expanded data.metadata" = Table.ExpandRecordColumn(#"Expanded data", "data.metadata", {"interval", "aggregation"}, {"data.metadata.interval", "data.metadata.aggregation"}),
#"Expanded data.usages" = Table.ExpandListColumn(#"Expanded data.metadata", "data.usages"),
#"Expanded data.usages1" = Table.ExpandRecordColumn(#"Expanded data.usages", "data.usages", {"period", "entries", "summary"}, {"data.usages.period", "data.usages.entries", "data.usages.summary"}),
#"Expanded data.usages.period" = Table.ExpandRecordColumn(#"Expanded data.usages1", "data.usages.period", {"from", "to"}, {"data.usages.period.from", "data.usages.period.to"}),
#"Expanded data.usages.summary" = Table.ExpandRecordColumn(#"Expanded data.usages.period", "data.usages.summary", {"aggregationTotals"}, {"data.usages.summary.aggregationTotals"}),
#"Removed Other Columns" = Table.SelectColumns(#"Expanded data.usages.summary",{"data.usages.entries"}),
#"Expanded data.usages.entries" = Table.ExpandListColumn(#"Removed Other Columns", "data.usages.entries"),
#"Expanded data.usages.entries1" = Table.ExpandRecordColumn(#"Expanded data.usages.entries", "data.usages.entries", {"actual", "previousYear", "budget", "weather"}, {"data.usages.entries.actual", "data.usages.entries.previousYear", "data.usages.entries.budget", "data.usages.entries.weather"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded data.usages.entries1",{"data.usages.entries.budget", "data.usages.entries.weather", "data.usages.entries.previousYear"}),
#"Expanded data.usages.entries.actual" = Table.ExpandRecordColumn(#"Removed Columns", "data.usages.entries.actual", {"date", "warmth", "gas", "electricity", "redelivery", "produced", "tapWater", "fixedCosts", "totalUsageCostInclVat", "totalFixedCostInclVat", "totalCostInclVat"}, {"data.usages.entries.actual.date", "data.usages.entries.actual.warmth", "data.usages.entries.actual.gas", "data.usages.entries.actual.electricity", "data.usages.entries.actual.redelivery", "data.usages.entries.actual.produced", "data.usages.entries.actual.tapWater", "data.usages.entries.actual.fixedCosts", "data.usages.entries.actual.totalUsageCostInclVat", "data.usages.entries.actual.totalFixedCostInclVat", "data.usages.entries.actual.totalCostInclVat"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded data.usages.entries.actual",{{"data.usages.entries.actual.date", type datetime}}),
#"Removed Columns1" = Table.RemoveColumns(#"Changed Type",{"data.usages.entries.actual.warmth", "data.usages.entries.actual.gas", "data.usages.entries.actual.fixedCosts", "data.usages.entries.actual.tapWater", "data.usages.entries.actual.redelivery"}),
#"Expanded data.usages.entries.actual.electricity" = Table.ExpandRecordColumn(#"Removed Columns1", "data.usages.entries.actual.electricity", {"status", "isDoubleTariff", "isDoubleMeter", "collectorType", "high", "highCostInclVat", "low", "lowCostInclVat", "fixedCostInclVat", "fixedCostInclVatStandingCharge", "fixedCostInclVatDeliveryCosts", "fixedCostInclVatTaxDiscount", "totalCostInclVat", "totalUsageCostInclVat", "errorCodes", "usedProductRates"}, {"data.usages.entries.actual.electricity.status", "data.usages.entries.actual.electricity.isDoubleTariff", "data.usages.entries.actual.electricity.isDoubleMeter", "data.usages.entries.actual.electricity.collectorType", "data.usages.entries.actual.electricity.high", "data.usages.entries.actual.electricity.highCostInclVat", "data.usages.entries.actual.electricity.low", "data.usages.entries.actual.electricity.lowCostInclVat", "data.usages.entries.actual.electricity.fixedCostInclVat", "data.usages.entries.actual.electricity.fixedCostInclVatStandingCharge", "data.usages.entries.actual.electricity.fixedCostInclVatDeliveryCosts", "data.usages.entries.actual.electricity.fixedCostInclVatTaxDiscount", "data.usages.entries.actual.electricity.totalCostInclVat", "data.usages.entries.actual.electricity.totalUsageCostInclVat", "data.usages.entries.actual.electricity.errorCodes", "data.usages.entries.actual.electricity.usedProductRates"}),
#"Removed Columns2" = Table.RemoveColumns(#"Expanded data.usages.entries.actual.electricity",{"data.usages.entries.actual.electricity.status", "data.usages.entries.actual.electricity.isDoubleTariff", "data.usages.entries.actual.electricity.isDoubleMeter", "data.usages.entries.actual.electricity.collectorType", "data.usages.entries.actual.electricity.errorCodes", "data.usages.entries.actual.electricity.usedProductRates", "data.usages.entries.actual.produced"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Removed Columns2",{{"data.usages.entries.actual.electricity.high", type number}, {"data.usages.entries.actual.electricity.highCostInclVat", type number}, {"data.usages.entries.actual.electricity.low", type number}, {"data.usages.entries.actual.electricity.lowCostInclVat", type number}, {"data.usages.entries.actual.electricity.fixedCostInclVat", type number}, {"data.usages.entries.actual.electricity.fixedCostInclVatStandingCharge", type number}, {"data.usages.entries.actual.electricity.fixedCostInclVatDeliveryCosts", type number}, {"data.usages.entries.actual.electricity.fixedCostInclVatTaxDiscount", type number}, {"data.usages.entries.actual.electricity.totalCostInclVat", type number}, {"data.usages.entries.actual.electricity.totalUsageCostInclVat", type number}, {"data.usages.entries.actual.totalUsageCostInclVat", type number}, {"data.usages.entries.actual.totalFixedCostInclVat", type number}, {"data.usages.entries.actual.totalCostInclVat", type number}}),
#"Duplicated Column" = Table.DuplicateColumn(#"Changed Type1", "data.usages.entries.actual.date", "data.usages.entries.actual.date - Copy"),
#"Changed Type2" = Table.TransformColumnTypes(#"Duplicated Column",{{"data.usages.entries.actual.date - Copy", type time}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type2",{{"data.usages.entries.actual.date - Copy", "time"}})
in
#"Renamed Columns"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment