使用 Psycopg2 在 PostgreSQL 中插入Python字典
在本文中,我们将看到如何使用 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() 方法从字典中获取表中的值。
![](https://mangodoc.oss-cn-beijing.aliyuncs.com/geek8geeks/Insert_Python_Dictionary_in_PostgreSQL_using_Psycopg2_0.jpg)
空桌
我们遍历字典值并将它们插入到表中。每次插入都会执行以下 SQL 语句。
'''insert into DETAILS(employee_id , employee_name ,
employee_email , employee_salary) VALUES{};'''
下面是实现:
Python3
import psycopg2
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 表:
![](https://mangodoc.oss-cn-beijing.aliyuncs.com/geek8geeks/Insert_Python_Dictionary_in_PostgreSQL_using_Psycopg2_1.jpg)
插入后的决赛桌