gpt4 book ai didi

excel - 在 Excel 中使用 Power Query 解析 JSON,其方式与 FetchJson 在 Google 表格中的处理方式相同

转载 作者:行者123 更新时间:2023-12-04 22:12:18 30 4
gpt4 key购买 nike

我想使用具有以下结构的 Power Query 在 Excel 中削减 JSON
enter image description here
这里是链接:
https://sum-app.net/projects/15222520210510875/download_data/kumu_json
我可以使用 FetchJson 在 Google 表格中执行此操作使用以下内容,但我没有运气使用 Ecexls Power 查询做同样的事情
如何在 Excel 中使用 Power Query 执行此操作?
提前感谢您对此的帮助
//获取元素的JSON数据
var data=FetchJSON(jsonlink,"|", "elements");
//获取连接的Json数据
var data=FetchJSON(jsonlink,"|", "connections");

 //get Json Data for element
function FetchJSON(jsonlink ,separator, what) {

// Set Fetch Variables
var response = UrlFetchApp.fetch(jsonlink);
var responseText = response.getContentText();
var responseJson = JSON.parse(responseText);

if(what=="elements"){
let myDico = new Map();
responseJson.elements.forEach(function(key){
Object.keys(key).forEach(function(item){
myDico.set(item,'')
})
})
var elementKeys = []
myDico.forEach(function(value, key) {
elementKeys.push(key)
});
var data = responseJson.elements.map(e => elementKeys.map(f => {
return e[f] instanceof Array ? e[f].join(separator) : e[f];
}));
data.unshift(elementKeys);

}
else if(what=="connections"){
let myDico2 = new Map()
responseJson.connections.forEach(function(key){
Object.keys(key).forEach(function(item){
myDico2.set(item,'')
})
})
var connectionKeys = []
myDico2.forEach(function(value, key) {
connectionKeys.push(key)
})
var data = responseJson.connections.map(e => connectionKeys.map(f => {
return e[f] instanceof Array ? e[f].join(separator) : e[f];
}));
data.unshift(connectionKeys);

};
//data = data.map(x => x.map(y => typeof y === 'undefined' || null ? "" : y));

return data
}
编辑:这是输出需要的样子
(列顺序不重要)
元素数据
enter image description here
连接数据
enter image description here
带有数据的 Google 表格
https://docs.google.com/spreadsheets/d/1yO3gX61MroPrYL2l1YnfDxloa5naAX6HG2Q2f5ED_lY/edit?usp=sharing

最佳答案

尝试

let  Source =Json.Document(File.Contents("C:\Temp\kumu_json.json")),
Expanded=Table.FromRecords (Source[elements] ),
#"Added Index" = Table.AddIndexColumn(Expanded, "Index", 0, 1, Int64.Type),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Index"}, "Attribute", "Value"),
#"Combine items in list" = Table.TransformColumns(#"Unpivoted Other Columns",{{"Value", each try if Value.Is(_, type list ) then Text.Combine(_,", ") else _ otherwise _, type text}}),
#"Pivoted Column" = Table.Pivot(#"Combine items in list", List.Distinct(#"Combine items in list"[Attribute]), "Attribute", "Value"),
#"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Index"}),
#"Changed Type" = Table.TransformColumnTypes(#"Removed Columns",List.Transform(Table.ColumnNames(#"Removed Columns"),each {_,type text}))
in #"Changed Type"

关于excel - 在 Excel 中使用 Power Query 解析 JSON,其方式与 FetchJson 在 Google 表格中的处理方式相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71958679/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com