我有一个文件,其中包含以下格式:
Cus Id: 1234
Cus Name: 10:/John Parks
Cus Type: temporary
Cus client: tesla;toyota
Dept Id: 111
Cus Id: 1235
Cus Name: 10:/William Parks
Cus Type: temporary
Cus client:
Dept Id: 222
如何将其转换为JSON格式?任何方法bash,jq或python都可以。
[
{
"Cus Id": 1234,
"Cus Name": "10:/John Parks",
"Cus Type": "temporary",
"Cus client": "tesla;toyota",
"Dept Id": 111
},
{
"Cus Id": 1235,
"Cus Name": "10:/William Parks",
"Cus Type": "temporary",
"Cus client": "null",
"Dept Id": 222
}
]
3条答案
按热度按时间tcomlyy61#
产出
xxb16uws2#
Python解决方案:
图纸:
zz2j4svz3#
您可以通过迭代地构建输出数组来创建原始文本流
reduce
(flag-R
)inputs
(flag-n
)。从包含一个空对象([{}]
)的数组开始,然后使用正则表达式计算capture
每行的内容,并用它填充当前最后一个数组项。如果捕获在结构上失败(测试键的存在),则添加另一个空对象。Demo
更进一步:
$in.v
。例如,首先测试值是否像数字并将其转换为1,然后测试空字符串并将其替换为特殊字符串("null"
),或者使用给定的字符串,您可以使用($in.v | tonumber? // (select(. == "") | "null") // .)
。map(select(. != {}))
的代码。