如何在逻辑应用程序中将内容类型应用程序八位字节流转换为 csv?

How to convert content type application octet stream to csv in logic apps?

我正在使用 http api 调用下载 D365 导出 csv 文件。 它正在以二进制格式下载 "$content-type": "application/octet-stream"

 {
  "$content-type": "application/octet-stream",
  "$content": "UEsDBBQAAAAIAL07VFMaQk8xFQcAAEkXAAAZAAAAQVZBVmV"
}

我尝试了下面的代码,但它仍然没有正确解码并给出垃圾值。请告诉我获取csv文件的正确方法。

我认为 $content 包含完整的文件数据,而不仅仅是内容。

json(base64ToString(replace(body('Get_blob_content')?['$content'],'77u/','')))
@string(body('Download_the_package_file')['$content'])

我观察到您正在导出 CSV 文件,但从 blob 读取 .json 文件。 根据您提供的信息,我们有 3 个场景。

1.如果 test.json 文件包含 AVAVendorEntity.csv 个元素 您可以通过对整个输出使用字符串表达式来检索这些没有垃圾的文件。

示例: 如果正文包含

{
"$content-type":  "application/octet-stream",
"$content":  "Ww0KICB7DQogICAgImlkIjogIjEiLA0KICAgICJyZWNlaXZlciI6ICIgMTIzODUiLA0KICAgICJwYXlsb2FkIjogIiB7J21lc3NhZ2UnOiAndGVzdCAxJyIsDQogICAgIm9wZXJhdG9yIjogIiAnRW5naW5lSWQnOiAzIiwNCiAgICAic2VuZGVyIjogIiAnUGVyc29uSWQnOiAxIg0KICB9LA0KICB7DQogICAgImlkIjogIjIiLA0KICAgICJyZWNlaXZlciI6ICIgMTIzNDciLA0KICAgICJwYXlsb2FkIjogIiB7J21lc3NhZ2UnOiAndGVzdCAyJyIsDQogICAgIm9wZXJhdG9yIjogIiAnRW5naW5lSWQnOiAzIiwNCiAgICAic2VuZGVyIjogIiAnUGVyc29uSWQnOiAyIg0KICB9DQpd"
}

然后我们使用

string(triggerBody())

2。如果只有 CSV 元素但具有 .json 扩展名 如果是这种情况,那么我们使用 JSON 而不是 string

示例: 如果正文包含

{
"$content-type":  "application/octet-stream",
"$content":  "dXJsCXVzZXJfaWQJdG9rZW5faWQJdXNlcm5hbWUJcGFzc3dvcmQNCmh0dHA6Ly93d3cudHdpdHRlci5jb20vYTg1CTEJMTIzMTIzMTIzCWFiaGluYXYJYWJjDQpodHRwOi8vd3d3LnR3aXR0ZXIuY29tL3NvYnRpYW5raXQJMgk4OTk4OTkJYW5raXQJZGVmDQpodHRwOi8vd3d3LnR3aXR0ZXIuY29tL2FiaGlqaXRrYW5lCTMJNDU2MTIzMTIzCWFiaGlqaXQJeHl6DQo="
}

然后我们使用

json(triggerBody())

3。相应地更改内容类型

4.问题可能出在提取数据时的 API 调用中

要将所需的输出转换为 .csv,解决方法之一是您始终可以使用 .csv 扩展名将它们存储到 blob 中,然后它会自动将数据转换为 CSV 格式。