我有一个传入的CSV文件,看起来像这样(请注意,第一个字段是通用的-这是订单号)
36319602,100,12458,HARVEY NORMAN,
36319602,101,12459,HARVEY NORMAN,
36319602,102,12457,HARVEY NORMAN,
36319601,110,12458,HARVEY NORMAN,
36319601,111,12459,HARVEY NORMAN,
36319601,112,12457,HARVEY NORMAN,
36319603,110,12458,HARVEY NORMAN,
36319603,121,12459,HARVEY NORMAN,
36319603,132,12457,HARVEY NORMAN,
这是我当前的Dataweave代码
list_of_orders: {
order: payload map ((payload01 , indexOfPayload01) -> {
order_dtl:
[{
seq_nbr: payload01[1],
route_nbr: payload01[2]
}],
order_hdr: {
ord_nbr: payload01[0],
company: payload01[3],
city: payload01[4],
}
})
}
所需输出的示例将是这样的……(这只是模拟了)。请注意,我希望按第一列分组的单个标头是订单号-但是有多个明细行
"list_of_orders": {
"order": [
{
"order_dtl": [
{
seq_nbr: 100,
route_nbr: 12458
},
{
seq_nbr: 101,
route_nbr: 12459
},
{
seq_nbr: 102,
route_nbr: 12457
}
],
"order_hdr":
{
ord_nbr: 36319602,
company: HARVEY NORMAN
}
}
]
}
除了重复order_hdr键外,它工作正常。 他们想要的是一个标头键,下面有多个详细信息。 分组应基于“ ord_nbr:payload01 [0]”
任何帮助表示赞赏
谢谢
答案 0 :(得分:0)
我认为您正在使用Dataweave1。在dw1中,此from functools import partial
def my_function_op(p1, p2, p3, p4):
# do stuff
f = partial(my_function_op, a1, a2)
x = f(a3, a4) # x = my_function_op(a1, a2, a3, a4)
获得所需的输出(请注意,如果有,您可以将字段指针[0],1等更改为字段名称映射它们设置为元数据等)
groupBy
更新
以下是具有多个订单的新输入样本的输出:
%dw 1.0
%output application/json
---
list_of_orders: {
order: (payload groupBy ($[0])) map {
order_dtl: $ map {
seq_nbr: $[1],
route_nbr: $[2]
},
order_hdr:
{
ord_nbr: $[0][0],
company: $[0][3]
}
}}