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
Liberdade é um prato facil de comer.
Mas deficil de digerir
Jean-Jaques Rousseau

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

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