【发布时间】:2020-03-25 22:34:47
【问题描述】:
我有两组 JSON 文件,如下所示,data-A.json 和 data-B.json。
我需要以某种方式将data-A.json 中的密钥URL 与data-B.json 中的相同密钥进行比较。如果匹配,则从 data-A.json 中的键 Position 获取数据,并写入 data-B.json 中的新键 PreviousPosition。如果没有匹配的URL,则在data-B.json中为这个新键写一个空值
请看例子:
data-A.json
[
{
"Position": "1",
"TrackName": "One hit wonder",
"URL": "https://domain.local/xyz123"
},
{
"Position": "2",
"TrackName": "Random song",
"URL": "https://domain.local/123qwe"
},
{
"Position": "3",
"TrackName": "Dueling banjos",
"URL": "https://domain.local/asd456"
}
]
数据-B.json
[
{
"Position": "1",
"TrackName": "Rocket",
"URL": "https://domain.local/nbs678"
},
{
"Position": "2",
"TrackName": "Dueling banjos",
"URL": "https://domain.local/asd456"
},
{
"Position": "3",
"TrackName": "One hit wonder",
"URL": "https://domain.local/xyz123"
}
]
(所需)data-B.json
[
{
"Position": "1",
"TrackName": "Rocket",
"URL": "https://domain.local/nbs678",
"PreviousPosition": null
},
{
"Position": "2",
"TrackName": "Dueling banjos",
"URL": "https://domain.local/asd456",
"PreviousPosition": "3"
},
{
"Position": "3",
"TrackName": "One hit wonder",
"URL": "https://domain.local/xyz123",
"PreviousPosition": "1"
}
]
我已经做了一些平庸的尝试来使用jq 解决这个问题,但没有运气。还尝试了一些 PowerShell 和 Python,但我就是想不通。
有什么建议吗?
【问题讨论】:
标签: json dictionary parsing jq