我正在尝试将用“Key”:“Value”对设置的字符串转换为对象数组。
我目前拥有的:
Date:2024-10-02 time,Time:13:13:45,Desc:SSL VPN login fail,IPAddress:95.164.32.58,User:swf group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in|Date:Date:2024-10-02 time,Time:13:13:31,Desc:SSL VPN login fail,IPAddress:79.110.62.9,User:Brenton group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in|Date:Date:2024-10-02 time,Time:13:11:45,Desc:SSL VPN login fail,IPAddress:45.125.66.55,User:Raquel group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in
这就是字符串,它有 7 个重复多次的“Key”:“Value”对(日期、时间、描述、IP 地址、用户、组、消息)。我将其分成“|”上的一个数组并得到一个像这样的数组:
"Date:2024-10-02 time,Time:13:13:45,Desc:SSL VPN login fail,IPAddress:95.164.32.58,User:swf group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in",
",Date:2024-10-02 time,Time:13:13:31,Desc:SSL VPN login fail,IPAddress:79.110.62.9,User:Brenton group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in",
",Date:2024-10-02 time,Time:13:11:45,Desc:SSL VPN login fail,IPAddress:45.125.66.55,User:Raquel group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in",
",Date:2024-10-02 time,Time:13:11:21,Desc:SSL VPN login fail,IPAddress:79.110.62.8,User:Oliver group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in",
但是,如果我尝试将其放入另一个循环中,它只会继续运行而不会停止,并且永远不会给我输出。
我尝试用“|”替换所有“,”然后分割,但这只会使它成为一个更长的数组,每个“Key”:“Value”对都是它自己的元素。
我想做的是从 Outlook 中获取一堆电子邮件并从中提取数据,将这些数据与我需要的 7 个部分配对,然后将其放入表格中以通过电子邮件发回给我,这样就可以了可以评估信息。我从中提取数据的电子邮件包含 10 到 100 行数据。我只需要每行的 7 个部分,因此数组将是 7 个“Key”:“Value”对乘以电子邮件中的 10 到 100 行。我已经完成了其他所有工作,直到我将上面的字符串排列好,我只是不知道如何将其拆分为正确的对象数组。
首先,鉴于您的问题关于确切输出的含糊性以及您如何体验您的问题尚未详细说明,我无法提供完整的解决方案。
我将重点向您展示如何拆分所有这些数据,以便您可以隔离字段和值。
警告:此解决方案假设所有字符串中的所有管道 (
|
) 和所有命令 (,
) 均表示行和列的分隔符。 如果情况并非如此,那么此解决方案需要采用不同的方法。
撰写数据
这是您提供的字符串...
Date:2024-10-02 time,Time:13:13:45,Desc:SSL VPN login fail,IPAddress:95.164.32.58,User:swf group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in|Date:Date:2024-10-02 time,Time:13:13:31,Desc:SSL VPN login fail,IPAddress:79.110.62.9,User:Brenton group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in|Date:Date:2024-10-02 time,Time:13:11:45,Desc:SSL VPN login fail,IPAddress:45.125.66.55,User:Raquel group,Group:VPN-USERS-Epicor,Msg:SSL user failed to logged in
将数据组合成行
表达式 =
split(outputs('Compose_Data'), '|')
对于每个拆分项目
表达式 =
outputs('Compose_Data_Split_Into_Rows')
将子拆分为列名称和值
表达式 =
split(item(), ',')
对于每个子拆分项目
表达式 =
outputs('Compose_Sub_Split_Into_Column_Name_And_Value')
撰写字段名称和值
此步骤拆分给定列的属性名称和每行的值。 从这里开始,您需要弄清楚要如何处理此数据分解,因为您需要将所有这些数据分组到代表一行的对象中。
{
"Name": @{first(split(item(), ':'))},
"Value": @{join(skip(split(item(), ':'), 1), '')}
}