I have a dictionary like this:
[
{
"context": {
"id": "aaa",
"number": "123456",
"codes": {
"code": {
"code": "abc123456",
"codeDesc": "sample",
"codeInfo": "example"
}
}
},
"info": {
"action": "CREATE",
"code": null,
"status": "SUCCESS",
"description": "abc123456"
},
"spec": {
"code": "abc123456",
"id": "aaa",
"url": "https://myexampleabc.mydomain.com",
"enable": true
}
},
{
"context": {
"id": "bbb",
"number": "789123",
"codes": {
"code": {
"code": "def789123",
"codeDesc": "sample",
"codeInfo": "example"
}
}
},
"info": {
"action": "CREATE",
"code": null,
"status": "SUCCESS",
"description": "def789123"
},
"spec": {
"code": "def789123",
"id": "bbb",
"url": "https://myexampledef.mydomain.com",
"enable": true
}
},
{
"context": {
"id": "ccc",
"number": "456789",
"codes": {
"code": {
"code": "ghi456789",
"codeDesc": "sample",
"codeInfo": "example"
}
}
},
"info": {
"action": "CREATE",
"code": null,
"status": "SUCCESS",
"description": "ghi456789"
},
"spec": {
"code": "ghi456789",
"id": "ccc",
"url": "https://myexampleghi.mydomain.com",
"enable": true
}
}
]
I want to translate it like this: "key1.key2.key3" : "value"
[
{
"context.id": "aaa",
"context.number": "123456",
"context.codes.code.code": "abc123456",
"context.codes.code.codeDesc": "sample",
"context.codes.code.codeInfo": "example",
"info.action": "CREATE",
"info.code": null,
"info.status": "SUCCESS",
"info.description": "abc123456",
"spec.code": "abc123456",
"spec.id": "aaa",
"spec.url": "https://myexampleabc.mydomain.com",
"spec.enable": true
},
{
"context.id": "bbb",
"context.number": "789123",
"context.codes.code.code": "def789123",
"context.codes.code.codeDesc": "sample",
"context.codes.code.codeInfo": "example",
"info.action": "CREATE",
"info.code": null,
"info.status": "SUCCESS",
"info.description": "def789123",
"spec.code": "def789123",
"spec.id": "bbb",
"spec.url": "https://myexampledef.mydomain.com",
"spec.enable": true
},
{
"context.id": "ccc",
"context.number": "456789",
"context.codes.code.code": "ghi456789",
"context.codes.code.codeDesc": "sample",
"context.codes.code.codeInfo": "example",
"info.action": "CREATE",
"info.code": null,
"info.status": "SUCCESS",
"info.description": "ghi456789",
"spec.code": "ghi456789",
"spec.id": "ccc",
"spec.url": "https://myexampleghi.mydomain.com",
"spec.enable": true
}
]
I try to do it with some loop and isinstance() function, but i can't do what i want. I'm not abble to handle the sublevel for code.
I try something like this
jsondata = json.loads(dataJson)
for level0 in jsondata:
if isinstance(level0, dict):
level1Keys = level0.keys()
level1Values = level0.values()
print(level1Keys)
print(level1Values)
I've also tried the .pop()
method, but I think I'm not in the right way to do it...