我正在使用 Azure Logic App 从我的存储帐户中获取 Blob 内容。Blob 文件为 .CSV 格式。我想将 CSV 文件转换为 JSON。
我知道第三方连接器,例如 Plumsail 文档,但它们是付费的。有没有免费的解决方案?
任何帮助将不胜感激。谢谢!
我正在使用 Azure Logic App 从我的存储帐户中获取 Blob 内容。Blob 文件为 .CSV 格式。我想将 CSV 文件转换为 JSON。
我知道第三方连接器,例如 Plumsail 文档,但它们是付费的。有没有免费的解决方案?
任何帮助将不胜感激。谢谢!
您可以使用该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,否则会并行执行,导致追加操作乱序。
您可以使用 PowerShell 运行时创建 Azure 函数,然后使用 PowerShell cmdletConvertFrom-CSV
和ConvertTo-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/create-first-function-vs-code-powershell