0

我正在使用 Azure Logic App 从我的存储帐户中获取 Blob 内容。Blob 文件为 .CSV 格式。我想将 CSV 文件转换为 JSON。

我知道第三方连接器,例如 Plumsail 文档,但它们是付费的。有没有免费的解决方案?

任何帮助将不胜感激。谢谢!

4

2 回答 2

2

您可以使用该split方法将csv文件的内容拆分,然后通过遍历将其存储在数组中,然后将其附加到Json字符串中。

例如csv文件的内容是

test1,test2,test3
testx,testy,testz

您需要先拆分每一行,然后用 . 拆分每一行,

注意\r\n逻辑app不好打,可以先用记事本写,然后粘贴到ʻExpression`中:</p>

split(body('Get_blob_content_using_path'),'
')

在此处输入图像描述

你可以参考这篇文章。虽然很繁琐,但还是有参考意义的。

=============更新===================

完整的工作流程如下:</p>

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

笔记:

for each,需要开启Concurrency Control并设置其值为1,否则会并行执行,导致追加操作乱序。

在此处输入图像描述

于 2020-11-04T07:51:16.973 回答
0

您可以使用 PowerShell 运行时创建 Azure 函数,然后使用 PowerShell cmdletConvertFrom-CSVConvertTo-Json. 可以从 Logic App 调用该函数。

using namespace System.Net

# Input bindings are passed in via param block.
param($Request, $TriggerMetadata)

# Write to the Azure Functions log stream.
Write-Host "PowerShell HTTP trigger function processed a request."

$Output = $Request.Body | ConvertFrom-CSV | ConvertTo-Json

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
    StatusCode = [HttpStatusCode]::OK
    Body = $Output
})

https://docs.microsoft.com/en-us/azure/azure-functions/functions-versions?tabs=in-process%2Cv4&pivots=programming-language-powershell

https://docs.microsoft.com/en-us/azure/azure-functions/create-first-function-vs-code-powershell

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertto-json?view=powershell-7.2

于 2021-12-03T12:26:57.663 回答