【发布时间】:2020-11-04 04:39:02
【问题描述】:
我正在使用 Azure 逻辑应用从我的存储帐户中获取 Blob 内容。 Blob 文件为 .CSV 格式。我想将 CSV 文件转换为 JSON。
我知道 Plumsail 文档等第三方连接器,但它们是付费的。有没有免费的解决方案?
任何帮助将不胜感激。 谢谢!
【问题讨论】:
标签: azure csv azure-logic-apps csvtojson
我正在使用 Azure 逻辑应用从我的存储帐户中获取 Blob 内容。 Blob 文件为 .CSV 格式。我想将 CSV 文件转换为 JSON。
我知道 Plumsail 文档等第三方连接器,但它们是付费的。有没有免费的解决方案?
任何帮助将不胜感激。 谢谢!
【问题讨论】:
标签: azure csv azure-logic-apps csvtojson
您可以使用split方法拆分csv文件的内容,然后通过遍历将其存储在数组中,然后将其附加到Json字符串中。
例如csv文件的内容是
test1,test2,test3
testx,testy,testz
需要先分割每一行,再用,分割每一行。
注意\r\n在逻辑应用中不好打,可以先用记事本写,然后粘贴到ʻExpression`中:
split(body('Get_blob_content_using_path'),'
')
您可以参考这个post。虽然很繁琐,但还是有参考意义的。
=============更新===================
完整的工作流程如下:
注意:
在for each中,需要开启Concurrency Control并将其值设置为1,否则会并行执行,导致追加操作乱序。
【讨论】:
您可以使用 PowerShell 运行时创建 Azure 函数,然后使用 PowerShell cmdlet ConvertFrom-CSV 和 ConvertTo-Json。可以从逻辑应用调用该函数。
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
【讨论】: