使用 Psycopg2

在 PostgreSQL 中插入 Python 字典

原文:https://www . geesforgeks . org/insert-python-dictionary-in-PostgreSQL-using-psycopg 2/

在本文中,我们将看到如何使用 Psycopg2 在 PostgreSQL 中插入 Python 字典。

我们可以通过将字典键作为列名,将值作为字典值来插入 python 字典。我们导入 Psycopg2 包,并使用 psycopg2.connect() 方法形成到 PostgreSQL 数据库的连接。首先,让我们创建一个表,然后将 python 字典值插入其中。我们通过使用 cursor.execute() 方法执行 SQL 语句来创建表。

创建表 SQL 命令:

'''CREATE TABLE DETAILS(employee_id int NOT NULL, employee_name char(20),
         employee_email varchar(30), employee_salary float);'''

创建空表后,使用从字典中获取表中的值。values() 方法。

空表

我们遍历字典值,并将它们插入到表中。每次插入都会执行下面的 SQL 语句。

'''insert into DETAILS(employee_id , employee_name ,
         employee_email , employee_salary) VALUES{};'''

下面是实现:

Python 3

import psycopg2

# connection establishment
conn = psycopg2.connect(
   database="geeks",
    user='postgres',
    password='root',
    host='localhost',
    port= '5432'
)

conn.autocommit = True
cursor = conn.cursor()

sql = '''CREATE TABLE DETAILS(employee_id int NOT NULL,\
          employee_name char(20),
          employee_email varchar(30), employee_salary float);'''

cursor.execute(sql)
dictionary ={ 'empl1' : (187643,'sarah',
                       'sarahpaul@gmail.com',65000),
              'empl2' : (187644,'rahul',
                       'rahul101@gmail.com',75000),
              'empl3' : (187645,'arjun',
                       'arjun234@gmail.com',70000)
}
columns= dictionary.keys()
for i in dictionary.values():
    sql2='''insert into DETAILS(employee_id , employee_name ,
          employee_email , employee_salary) VALUES{};'''.format(i)

    cursor.execute(sql2)

sql3='''select * from DETAILS;'''
cursor.execute(sql3)
for i in cursor.fetchall():
    print(i)

conn.commit()
conn.close()

输出:

(187643, 'sarah               ', 'sarahpaul@gmail.com', 65000.0)
(187644, 'rahul               ', 'rahul101@gmail.com', 75000.0)
(187645, 'arjun               ', 'arjun234@gmail.com', 70000.0)

插入后的 PostgreSQL 表:

插入后的最终表格