PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Psycopg2 wstawia słownik Pythona do bazy danych postgres

Dwa rozwiązania:

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)

Wyjście:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. plpgsql:wywołanie funkcji z 2 parametrami OUT

  2. Zduplikowana wartość klucza narusza ograniczenie unikatowości, CakePHP

  3. PostgreSQL:zduplikowana wartość klucza narusza unikatowe ograniczenie w poleceniu UPDATE

  4. Zapobiegaj pustym ciągom w polu CHARACTER VARYING

  5. Porównanie równości/nierówności SQL z wartościami nullable