how to filter json array in python

json, python

Solution

The following snippet of code does exactly what you want, but BEWARE that your input (as written in the question) is not a valid json string, you can check here: http://jsonlint.com.

import json

input_json = """
[
    {
        "type": "1",
        "name": "name 1"
    },
    {
        "type": "2",
        "name": "name 2"
    },
    {
        "type": "1",
        "name": "name 3"
    }
]"""

# Transform json input to python objects
input_dict = json.loads(input_json)

# Filter python objects with list comprehensions
output_dict = [x for x in input_dict if x['type'] == '1']

# Transform python object back into json
output_json = json.dumps(output_dict)

# Show json
print output_json

Problem

That is the current json array I have. I want get all json objects that type=1 before filter: ``` [ { "type": 1 "name" : "name 1", }, { "type": 2 "name" : "name 2", }, { "type": 1 "name" : "name 3" }, ] ``` after filter: ``` [ { "type": 1 "name" : "name 1", }, { "type": 1 "name" : "name 3" }, ] ``` please help.

Original source