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) ?

Asked By: ChsharpNewbie

||

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.

Answered By: svevr