Home > Mobile >  Normalise JSON with Python
Normalise JSON with Python

Time:11-08

Prompt me, please, how to normalize this JSON file using Python?

This question is related to the previous

The current JSON contains:

{
    "total_stats": [
        {
            "domain": "domain.com",
            "uptime": "100"
        },
        {
            "domain": "domain.com",
            "threats": "345.01111783804436"
        }
    ]
}

Desirable

{
    "total_stats": [
        {
            "domain": "domain.com",
            "uptime": "100",
            "threats": "345.01111783804436"
        }
    ]
}

CodePudding user response:

If you want to merge the dictionaries according the "domain" key you can use (note: if dictionaries have common keys, the last dictionary value will be used):

dct = {
    "total_stats": [
        {"domain": "domain.com", "uptime": "100"},
        {"domain": "domain.com", "threats": "345.01111783804436"},
    ]
}


out = {}
for d in dct["total_stats"]:
    out.setdefault(d["domain"], {}).update(d)

dct["total_stats"] = list(out.values())
print(dct)

Prints:

{
    "total_stats": [
        {
            "domain": "domain.com",
            "uptime": "100",
            "threats": "345.01111783804436",
        }
    ]
}
  • Related