我正在使用 Azure 逻辑应用程序从我的存储帐户中获取 blob 内容。Blob 文件位于 .CSV 文件中。CSV 文件由几列和多行组成。该文件基本上是一个发票文件,其中包含一个名为“PreTaxCost”的列。我需要计算 CSV 文件中“PreTaxCost”列中所有条目的总和,以获得总账单成本。
问问题
1008 次
2 回答
2
根据我们的谈话和您的要求。由于在 JS 内联代码中加号无法解决问题,所以提供下面的加号步骤供您参考:
1.删除JS inline code action中最后几行代码,json
直接return。
2.初始化两个变量sum
和tempItem
。
3.使用“For each”循环Result
from JS 内联代码动作,并在“For each”循环中设置变量动作。
4.的表达式fx add(...)
是add(variables('tempItem'), float(items('For_each')?['PreTaxCost']))
。如果您的“For each”循环命名为For each 2
,则表达式应为add(variables('tempItem'), float(items('For_each_2')?['PreTaxCost']))
。
5.请不要忘记启用Concurrency Control
,并设置Degree of Parallelism
为1
。然后运行逻辑应用,即可得到求和结果。
于 2020-11-05T08:29:57.850 回答
1
如果要在 Azure 逻辑应用中将 csv 转换为 json,可以使用Execute JavaScript Code
action 运行 js 代码来实现。JS代码如下
function csvToJson(csv){
var lines=csv.split("\r\n");
var result = [];
var headers=lines[0].split(",");
for(var i=0; i<headers.length; i++){
//remove space
headers[i]=headers[i].split(" ").join("")
}
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split(",");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return JSON.stringify(result);;
}
var content = "<csv content>";
var json = JSON.parse(csvToJson(content));
var sum = 0;
json.forEach(item=>{
sum = sum + parseInt(item.PreTaxCost);
});
return sum;
于 2020-11-04T13:12:41.203 回答