Filter null values from JSON
Question:
I receive the following JSON from the MS Graph API:
[
{
"audio": null,
"package": null,
"pendingOperations": null,
"photo": null,
....
"webUrl": null,
"createdByUser": null,
"lastModifiedByUser": null,
"id": "0145415166458484754....",
"@odata.type": "#microsoft.graph.driveItem"
}
]
How can I filter the null values using Python (3.9) ?
Answers:
First of all, processing it is easier when it’s been converted to python data structure, such as a dict. The built-in json module can convert a json-string into python objects using json.loads.
import json
data = json.loads(my_json_string)
You can create a new dictionary without the None-values by iterating over the items. Python uses None in place of null, so we have to filter on that
filtered_data = {}
for key, value in data.items():
if value != None:
filtered_data[key] = value
Or more compactly:
filtered_data = {k:v for k, v in data.items() if v != None}
Your example data is a list of dictionaries, so you’ll have to this to each element in the list.
I receive the following JSON from the MS Graph API:
[
{
"audio": null,
"package": null,
"pendingOperations": null,
"photo": null,
....
"webUrl": null,
"createdByUser": null,
"lastModifiedByUser": null,
"id": "0145415166458484754....",
"@odata.type": "#microsoft.graph.driveItem"
}
]
How can I filter the null values using Python (3.9) ?
First of all, processing it is easier when it’s been converted to python data structure, such as a dict. The built-in json module can convert a json-string into python objects using json.loads.
import json
data = json.loads(my_json_string)
You can create a new dictionary without the None-values by iterating over the items. Python uses None in place of null, so we have to filter on that
filtered_data = {}
for key, value in data.items():
if value != None:
filtered_data[key] = value
Or more compactly:
filtered_data = {k:v for k, v in data.items() if v != None}
Your example data is a list of dictionaries, so you’ll have to this to each element in the list.