Phong Vu
Phong Vu

Reputation: 2896

How to merge JSON array and an array

I have 2 arrays as below:

array 1:

[
    {"name": "A", "class" : "1"},
    {"name": "B", "class" : "2"},
    {"name": "C", "class" : "3"}
]

array 2:

[ "A","B"]

I wanna merge 2 arrays, and my expected result:

[
    {"name": "A", "class" : "1"},
    {"name": "B", "class" : "2"}
]

Any suggestion is appreciated

What I found so far:

Upvotes: 1

Views: 207

Answers (1)

gmds
gmds

Reputation: 19885

Just use a list comprehension:

first = [
         {"name": "A", "class" : "1"},
         {"name": "B", "class" : "2"},
         {"name": "C", "class" : "3"}
]

second = ['A', 'B']

result = [d for d in first if d['name'] in second]
print(result)

Output:

[{'name': 'A', 'class': '1'}, {'name': 'B', 'class': '2'}]

In the case raised in the comments:

from operator import itemgetter

first = [
         {"name": "A", "class" : "1"},
         {"name": "B", "class" : "2"},
         {"name": "C", "class" : "3"}
]

second = [
         {"name": "A"},
         {"name": "B"}
]

result = [d for d in first if d['name'] in map(itemgetter('name'), second)]
print(result)

Output:

[{'name': 'A', 'class': '1'}, {'name': 'B', 'class': '2'}]

Upvotes: 5

Related Questions