python - 将 json 数组中的键追加(映射)到另一个子数组

标签 python json jq transpose

我有 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/

相关文章:

python - 如何为多个Python版本和平台构建编译模块

php - 通过 PHP 处理 json 数组的条件

javascript - 从 JSON 对象中删除 $ - 可能吗?

java - org.codehaus.jackson 与 com.fasterxml.jackson.core

python 重复程序而为真

python - 手动触发ttk笔记本选项卡更改事件

time - 使用 jq 控制台工具格式化时间段

json - 我如何将参数作为索引传递给 jq?

json - 将 jq 查询字符串分成几行

python - 添加 ndarray 和在 python 中转换为密集的稀疏矩阵时出现广播错误