sql >> Database >  >> RDS >> PostgreSQL

Psycopg2 voegt python-woordenboek in postgres-database in

Twee oplossingen:

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)

Uitgang:

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


  1. 4 manieren om de definitie van een opgeslagen procedure te krijgen met Transact-SQL

  2. Dubbele vermeldingen in DB repareren (MySQL-bug)

  3. Deel 2 – Een groot databasediagram organiseren?

  4. Een extreem grote tafel normaliseren