json文件的行格式如下。
的 "solution-id": 1
此行在文件中重复1000次。现在我需要修改该行,使得该文件如下所示
"solution-id": 1
"solution-id": 2
"solution-id": 3
...
....
.....
""solution-id": 1000"
如何使用bash或python实现此目的?
答案 0 :(得分:1)
您可以使用jq
,而不是使用Bash或Python操作JSON。
例如,如果您有这样的JSON:
[
{
"solution-id": "foo",
"junk": "foo"
},
{
"solution-id": "bar",
"junk": "foo"
}
]
你想转变成这个:
[
{
"solution-id": 0,
"junk": "foo"
},
{
"solution-id": 1,
"junk": "foo"
}
]
你可以写:
jq 'to_entries | map(.value["solution-id"] = .key) | map(.value)' file.json
这里发生了什么,to_entries
函数接受数组输入,并生成键值对,其中key是数字0,1,2,...,n的序列,和value是数组中的原始项。管道中的第一个map
是使用序列号修改值,第二个map
是提取值。为了更好地理解,只运行jq to_entries' file.json
,映射将更有意义。