SmtC: Show me the Code
Ole Peter Smith
Instituto de Matemática e Estatística
Universidade Federal de Goiás
http://www.olesmith.com.br

Dictionaries
Quando eu dou de comer aos pobres
Me chamam de santo
Quando eu pergunto por que eles são pobres
Me chamam de comunista
Dom Helder Câmera

Generating JSON

??Third.py3 Listing: Third.py3.
#!/usr/bin/python3

#A dict
persons=[
    {
        "ID": 1,
        "Name": "Ole",
        "Email": "ole@ufg.br",
        "Birthday": "11/01/1964",
        "Phone": "62 5555555",
        "Fax": "62 5555555",
    },
    {
        "ID": 2,
        "Name": "Fulano",
        "Email": "ole@ufg.br",
        "Birthday": "11/01/1999",
        "Phone": "62 5555555",
        "Fax": "62 5555555",
    },
    {
        "ID": 3,
        "Name": "Beltrano",
        "Email": "ole@ufg.br",
        "Birthday": "11/01/1964",
        "Phone": "62 5555555",
        "Fax": "62 5555555",
    },
    {
        "ID": 4,
        "Name": "Ciclano",
        "Email": "ole@ufg.br",
        "Birthday": "11/01/1964",
        "Phone": "62 444444",
        "Fax": "62 4444444",
    },
    {
        "ID": 5,
        "Name": "Odin",
        "Email": "ole@ufg.br",
        "Birthday": "11/01/1964",
        "Phone": "62 5555555",
        "Fax": "62 5555555",
    },
    {
        "ID": 6,
        "Name": "Thor",
        "Email": "thor@ceu.br",
        "Birthday": "11/01/1964",
        "Phone": "62 5555555",
        "Fax": "62 5555555",
    },
]

def Dict2JSON(dct,level=1,indent="   "):
    texts=[
        indent*2+"{"
    ]
    
    keys=list(dct.keys())
    for j in range(len(keys)):
        key=keys[j]
        value=str(dct[ key ])
        
        text=indent*3
        text=text+'"'+key+'": '
        text=text+'"'+value+'"'

        #Some JSON parsers may worry about trailing commas
        if (j<len(keys)-1):
            text=text+','
        
        texts.append(text)

    texts.append(indent*2+"}")

    return "\n".join(texts)

def Dicts2JSON(dcts,level=1,indent="   "):
    texts=[
        indent+"["
    ]

    for i in range(len(dcts)):
        #Increment level
        text=Dict2JSON(dcts[i],level+1,indent)
        
        #Some JSON parsers may worry about trailing commas
        if (i<len(dcts)-1):
            text=text+','
            
        texts.append(text)

    texts.append(indent+"]")

    return "\n".join(texts)
    
indent="  "


print("{")

print(   Dicts2JSON(persons)   )

print("}")

Output:
{
   [
      {
         "Fax": "62 5555555",
         "Birthday": "11/01/1964",
         "Name": "Ole",
         "Email": "ole@ufg.br",
         "ID": "1",
         "Phone": "62 5555555"
      },
      {
         "Fax": "62 5555555",
         "Birthday": "11/01/1999",
         "Name": "Fulano",
         "Email": "ole@ufg.br",
         "ID": "2",
         "Phone": "62 5555555"
      },
      {
         "Fax": "62 5555555",
         "Birthday": "11/01/1964",
         "Name": "Beltrano",
         "Email": "ole@ufg.br",
         "ID": "3",
         "Phone": "62 5555555"
      },
      {
         "Fax": "62 4444444",
         "Birthday": "11/01/1964",
         "Name": "Ciclano",
         "Email": "ole@ufg.br",
         "ID": "4",
         "Phone": "62 444444"
      },
      {
         "Fax": "62 5555555",
         "Birthday": "11/01/1964",
         "Name": "Odin",
         "Email": "ole@ufg.br",
         "ID": "5",
         "Phone": "62 5555555"
      },
      {
         "Fax": "62 5555555",
         "Birthday": "11/01/1964",
         "Name": "Thor",
         "Email": "thor@ceu.br",
         "ID": "6",
         "Phone": "62 5555555"
      }
   ]
}

Output from: /usr/bin/python3 Third.py3
Messages:
0 secs.