使用python合并两个json文件

时间:2018-03-04 07:30:11

标签: python

我是python的新手,我想合并两个JSON文件 不应该有任何重复: 如果值和名称相同,那么我将添加两个键并保持单个记录,否则,我将保留记录

文件1:

[[',',';']]

文件2:

[   {
        "key": 1,
    "name": "test",
        "value": "NY"
    },
    {
        "key": 1,
    "name": "test",
        "value": "CA"
    },
    {
        "key": 1,
    "name": "test",
        "value": "MA"
    },
  {
    "key": 1,
    "name": "test",
    "value": "MA"
  }
]

并且合并的文件输出应为:

[   {
        "key": 1,
    "name": "test",
        "value": "NJ"
    },
    {
        "key": 1,
    "name": "test",
        "value": "CA"
    },
    {
        "key": 1,
    "name": "test",
        "value": "TX"
    },
  {
    "key": 1,
    "name": "test",
    "value": "MA"
  }
]

记录顺序无关紧要。

我已经尝试了几种方法,比如合并文件然后迭代,分别解析这两个文件,但我遇到问题,是python的新手。

1 个答案:

答案 0 :(得分:1)

这应该有所帮助。

# -*- coding: utf-8 -*-
f1 = [   {
        "key": 1,
        "value": "NY"
    },
    {
        "key": 1,
        "value": "CA"
    },
    {
        "key": 1,
        "value": "MA"
    }
]

f2 = [   {
        "key": 1,
        "value": "NJ"
    },
    {
        "key": 1,
        "value": "CA"
    },
    {
        "key": 1,
        "value": "TX"
    }
]
check = [i["value"] for i in f1]  #check list to see if the value already exist in f1.
for i in f2:
    if i['value'] not in check:
        f1.append(i)

print(f1)

<强>输出:

[{'value': 'NY', 'key': 1}, {'value': 'CA', 'key': 1}, {'value': 'MA', 'key': 1}, {'value': 'NJ', 'key': 1}, {'value': 'TX', 'key': 1}]