PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Inserisci il dizionario Python usando Psycopg2

from psycopg2.extensions import AsIs

song = {
    'title': 'song 1',
    'artist': 'artist 1'
}

columns = song.keys()
values = [song[column] for column in columns]

insert_statement = 'insert into song_table (%s) values %s'

    # cursor.execute(insert_statement, (AsIs(','.join(columns)), tuple(values)))
print cursor.mogrify(insert_statement, (AsIs(','.join(columns)), tuple(values)))

Stampe:

insert into song_table (artist,title) values ('artist 1', 'song 1')

Psycopg adatta una tuple in un record e AsIs fa ciò che sarebbe fatto dalla sostituzione di stringhe di Python.