gpt4 book ai didi

json - 使用jq将带有换行符的文本文件转换为json

转载 作者:行者123 更新时间:2023-12-04 16:18:22 30 4
gpt4 key购买 nike

我已经看到很多使用 jq 将文本文件转换为 json 的示例,但是我陷入了一些可能很明显的问题。我的输入文件具有以下格式:

key1: string1
key2: string1

key1: string3
key2: string3

我怎样才能把它翻译成:
[
{"key1":"string1", "key2": "string2"},
{"key1":"string3", "key2": "string4"}
]

我试过使用 inputs与 jq,类似 jq -R -n -c '[inputs|split(":")|{(.[0]):.[1]}] | add' ,但一旦文件中出现换行符,它就会失败:
jq: error (at result.txt:8): Cannot use null (null) as object key .

谢谢

最佳答案

由于减少被广泛理解,这里有一个简单的 reduce -基于解决方案,不需要在键值行组之间换行。也就是说,在构造数组时,一旦遇到出现在前一个对象中的键,就会启动一个新对象。

< input.txt jq -nR '
reduce (inputs
| select(length > 0)
| capture("(?<k>^[^:]*): *(?<v>.*)")
| {(.k):.v}) as $in (null;
if . == null then [$in]
elif (.[-1] | has($in|keys_unsorted[0])) then . + [$in]
else .[-1] += $in end)'

关于json - 使用jq将带有换行符的文本文件转换为json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60425030/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com