PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Psycopg2 вмъква речник на python в базата данни на postgres

Две решения:

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)

Изход:

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. Изключете дефиниции на функции при изхвърляне на PostgreSQL база данни

  2. SQLAlchemy има ли функция bool_and агрегат?

  3. initdb:не може да промени разрешенията на директорията в контейнера Postgresql

  4. Промяна на схемата на множество функции на PostgreSQL в една операция?

  5. Как да разрешите проблема с разрешението при стартиране на Postgresql от minikube?