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

SQL
Problemas resolvemos na hora!
Milagres demoram mais um pouco...
Provérbio dinamarquês
< Python | INSERT | SELECT >

INSERT

INSERT INTO
table_name
(column1, column2, column3, ...)
VALUES
(value1, value2, value3, ...);
??Third.py3 Listing: Third.py3.
#!/usr/bin/python3

import re


#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 Dict2SQL(dct,table,level=1,indent="   "):
    keys=list(dct.keys())
    vals=[]
    for key in keys:
        vals.append("'"+str(dct[ key ])+"'")

    return "("+",".join(vals)+"),"


def Dicts2SQL(dcts,table,level=1,indent="   "):
    texts=[
        "INSERT INTO `"+table+"`"
    ]
    
    keys=list(dcts[0].keys())
    cols=[]
    for key in keys:
        cols.append(key)
        
    texts.append( "("+",".join(cols)+")" )
    texts.append( "VALUES" )
    
    for i in range(len(dcts)):
        #Increment level
        texts.append(
            Dict2SQL(dcts[i],table,level+1,indent)
        )

    #Remove trailing comma
    texts[ len(texts)-1 ]=re.sub(',$',";",texts[ len(texts)-1 ])
    
    return texts

def Lines2File(fname,lines):
    f=open(fname,"w" )
    for line in lines:
        f.write("%s\n" % line)
    f.close()


lines=[
    'CREATE TABLE `Persons` (ID int,Name varchar(255),Email varchar(255),Birthday varchar(255),Phone varchar(255),Fax varchar(255));\n\n'
    ]+Dicts2SQL(persons,"Persons")

Lines2File("Persons.sql",lines)

print(   "\n".join(lines)  )
CREATE TABLE `Persons` (ID int,Name varchar(255),Email varchar(255),Birthday varchar(255),Phone varchar(255),Fax varchar(255));


INSERT INTO `Persons`
(Phone,Name,Birthday,Fax,Email,ID)
VALUES
('62 5555555','Ole','11/01/1964','62 5555555','ole@ufg.br','1'),
('62 5555555','Fulano','11/01/1999','62 5555555','ole@ufg.br','2'),
('62 5555555','Beltrano','11/01/1964','62 5555555','ole@ufg.br','3'),
('62 444444','Ciclano','11/01/1964','62 4444444','ole@ufg.br','4'),
('62 5555555','Odin','11/01/1964','62 5555555','ole@ufg.br','5'),
('62 5555555','Thor','11/01/1964','62 5555555','thor@ceu.br','6');

Output from: /usr/bin/python3 Third.py3
In mysql client: source file.sql
< Python | INSERT | SELECT >
Messages:
0 secs.