sql >> Databáze >  >> RDS >> PostgreSQL

Psycopg2 vloží pythonský slovník do databáze postgres

Dvě řešení:

d = {'k1': 'v1', 'k2': 'v2'}

insert = 'insert into table (%s) values %s'
l = [(c, v) for c, v in d.items()]
columns = ','.join([t[0] for t in l])
values = tuple([t[1] for t in l])
cursor = conn.cursor()
print cursor.mogrify(insert, ([AsIs(columns)] + [values]))

keys = d.keys()
columns = ','.join(keys)
values = ','.join(['%({})s'.format(k) for k in keys])
insert = 'insert into table ({0}) values ({1})'.format(columns, values)
print cursor.mogrify(insert, d)

Výstup:

insert into table (k2,k1) values ('v2', 'v1')
insert into table (k2,k1) values ('v2','v1')


  1. Go with SQL Server driver se nemůže úspěšně připojit, přihlášení se nezdařilo

  2. Sloučit dva oddíly do jednoho v SQL Server (T-SQL)

  3. Výstup všech chyb PHP do databáze není error_log

  4. SQL:Umožněte prohledávat barvy z tabulky barev