how to filter json array in python

how to filter json array in python

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

Simply

print [obj for obj in dict if(obj[type] == 1)] 

Example Link.

how to filter json array in python

The filter() method filters the given sequence with the help of a function that tests each element in the sequence to be true or not. Documentation for filter

>>> obj=[
...     {
...         type: 1,
...         name: name 1
...     },
...     {
...         type: 2,
...         name: name 2
...     },
...     {
...         type: 1,
...         name: name 3
...     }
... ]
>>> filter(lambda x: x[type] == 1, obj)
<filter object at 0x7fd98805ca00>
>>> list(filter(lambda x: x[type] == 1, obj))
[{type: 1, name: name 1}, {type: 1, name: name 3}]
>>> list(filter(lambda x: x[type] == 2, obj))
[{type: 2, name: name 2}]

Leave a Reply

Your email address will not be published. Required fields are marked *