我在寻找两个列表的同时迭代。
输入对象列表:
第一个输入对象列表
{
"k11": "v111",
"k12": "v112"
}
{
"k11": "v121",
"k12": "v122"
}
{
"k11": "v131",
"k12": "v132"
}
第二个输入对象列表
{
"k21": "v211",
"k22": "v212"
}
{
"k21": "v221",
"k22": "v222"
}
{
"k21": "v231",
"k22": "v232"
}
所需输出对象列表
{
"k11": "v111",
"k12": "v112"
"k21": "v211",
"k22": "v212"
}
{
"k11": "v121",
"k12": "v122"
"k21": "v221",
"k22": "v222"
}
{
"k11": "v131",
"k12": "v132"
"k21": "v231",
"k22": "v232"
}
两个对象列表之间没有匹配的键(可以很容易地转换成数组),谢谢你阅读这个问题。
3条答案
按热度按时间2izufjch1#
一种方法是使用
--slurpfile
将文件作为数组读入,然后使用transpose
和add
"压缩"它们:两个对象列表(可以很容易地转换为数组)
如果这两个文件已经是数组,可以从使用
--slurpfile
转换到使用单个--slurp
(或-s
),然后将这些文件作为常规输入文件读入,并使用相同的"压缩"技术:6ss1mwsb2#
如所接受的答案所示,解决该问题的一种方法是将两个流都转换为数组,但这强加了不必要的存储器要求,如以下解决方案所示,其要求两个流中的仅一个被“吸收”,并且顺便提一下,其也不会招致
transpose
的各种成本.vecaoik13#
我知道这是作弊,我只是想看看它是否有效:一种壳体管道