1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#!/usr/bin/env python3
import json
dict2 = {}
currentPad = 0
dict1 = {
'level01': [
{
'prp1': 'foo1',
'prp2': 'bar',
'prp3': 'zzz',
'level11': [
{
'prp1': 'foo12',
'prp2': 'bar12',
},
{
'prp1': 'foo13',
'prp2': 'bar13',
},
],
},
{
'prp1': 'foo2',
'prp2': 'bar',
'prp3': 'zzz',
'level12': [
{
'prp1': 'foo22',
'prp2': 'bar22',
},
{
'prp1': 'foo23',
'prp2': 'bar23',
},
],
},
],
'level02': [
{
'prp1': 'foo1',
'prp2': 'bar',
'prp3': 'zzz',
'level13': [
{
'prp1': 'foo12',
'prp2': 'bar12',
},
{
'prp1': 'foo13',
'prp2': 'bar13',
},
],
},
{
'prp1': 'foo2',
'prp2': 'bar',
'prp3': 'zzz',
'level14': [
{
'prp1': 'foo22',
'prp2': 'bar22',
},
{
'prp1': 'foo23',
'prp2': 'bar23',
},
],
},
],
}
def _readList(myList, newDict):
for myItem in myList:
print("{}{}".format( ' ' * currentPad, '---'))
newDict.append( {} )
if isinstance(myItem, dict):
_readDict( myItem, newDict[-1] )
def _readDict(currentDict, newDict):
global currentPad
for k, v in currentDict.items():
if isinstance(v, list):
print("{}{}".format( ' ' * currentPad, k ))
if not k in newDict:
newDict[k] = []
currentPad += 1
_readList(v, newDict[k]);
currentPad -= 1
else:
print("{}{}={}".format( ' ' * currentPad, k, v))
newDict[k] = v
_readDict(dict1, dict2)
print('dict2' + json.dumps(dict2, indent=4, sort_keys=True)) |
Partager