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
|
#!/usr/bin/env python3
import json
dict2 = {}
current = { 'pad': 0 }
dict1 = {
'level1': [
{
'prp1': 'foo1',
'prp2': 'bar',
'prp3': 'zzz',
'level2': [
{
'prp1': 'foo12',
'prp2': 'bar12',
},
{
'prp1': 'foo13',
'prp2': 'bar13',
},
],
},
{
'prp1': 'foo2',
'prp2': 'bar',
'prp3': 'zzz',
'level2': [
{
'prp1': 'foo22',
'prp2': 'bar22',
},
{
'prp1': 'foo23',
'prp2': 'bar23',
},
],
},
],
}
def _readList(myList):
for myItem in myList:
print("{}{}".format( ' ' * current['pad'], '---' ))
#-------------------------------------------
# Tien ! Voici un nouvel item de list...
# Alors je dois surement faire un append sur
# le pointeur courant
#-------------------------------------------
if isinstance(myItem, dict):
_readDict(myItem)
def _readDict(currentDict):
for k,v in currentDict.items():
if isinstance(v, list):
print("{}{}".format( ' ' * current['pad'], k ))
#-------------------------------------------
# Ha bah ici, c'est une nouvelle clé de liste
# Il faut donc créer cette clé au format list
# ci elle n'existe pas
#-------------------------------------------
current['pad']+=1
_readList(v)
current['pad']-=1
else:
print("{}{}={}".format( ' ' * current['pad'], k, v ))
#-------------------------------------------
# Et là c'est juste une clé valeur
# Toujours sur le pointeur courant je dois faire
# dict2reference[k] = v
#-------------------------------------------
_readDict(dict1)
print(json.dumps(dict2)) |
Partager