我有 2 个 json
文件:
file1.json
[
{
"name":"value",
"description":"value"
},
{
"name":"value1",
"description":"value1"
}
]
file2.json
[
{
"url":"value"
},
{
"url":"value1"
}
]
预期结果:
[
{
"name":"value",
"description":"value"
"url":"value"
},
{
"name":"value1",
"description":"value1",
"url":"value1"
}
]
我尝试使用jq
:
jq -s '.[0] * .[1]' file1 file2
我尝试使用 python,但我不熟悉,它不起作用。提前致谢。
最佳答案
试试这个:
import json
li=[]
with open('file1.json') as f:
li1 = json.load(f)
with open('file2.json') as f:
li2 = json.load(f)
for a in zip(li1,li2): # where l1 is first list, l2 is second list
dict={}
dict.update(a[0])
dict.update(a[1])
li.append(dict)
print(li)
# [{'name': 'value', 'description': 'value', 'url': 'value'}, {'name': 'value1', 'description': 'value1', 'url': 'value1'}]
或
from collections import ChainMap
import json
with open('file1.json') as f:
li1 = json.load(f)
with open('file2.json') as f:
li2 = json.load(f)
li=[dict(ChainMap(*a)) for a in zip(li1,li2)]
print(li)
希望这有帮助!
关于python - 将 json 数组中的键追加(映射)到另一个子数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58116921/