[英]python: insert the list data into database
有一個名為movie_db的PostgreSQL數據庫,並創建了一個名為films的表,如下所示:
CREATE TABLE movies (
title varchar(128) NOT NULL,
description varchar(256) NOT NULL,
directors varchar(128)[],
roles varchar(128)[]
);
我有四個列表,分別是標題,描述,導演,角色。 例如(可能是一個很大的列表,而不僅僅是三個元素)。
title = ['a', 'b', 'c']
description = ['good love', 'sun beautiful', 'wind go']
director = ['tom', 'jack', 'john']
roles=[['kate', 'back', 'jon'], ['tian', 'den', 'lucy'], ['cruse', 'jodan', 'peter']]
我想將這些列表數據插入表膠片中,如何使用python sql進行處理,我想獲得如下表所示的結果,請注意,角色不僅具有一個名稱,有時還具有三個名稱,例如kate,back,jon
title description director roles
a good love tom kate, back, jon
b sun beautiful jack tian, den, lucy
c wind go john cruse, jodan, peter
我使用以下python代碼:
cur.execute('insert into film_test(title, description, directors,
roles)values(%s, %s, %s, %s)', title, description, director, roles)
但是有錯誤:
TypeError: function takes at most 2 arguments (5 given)
您能用python插入表格嗎,謝謝!
psycopg2對數組插入有很大的支持。 這可能會有所幫助。
import psycopg2
conn = psycopg2.connect(database="postgres")
cur = conn.cursor()
title = ['a', 'b', 'c']
description = ['good love', 'sun beautiful', 'wind go']
director = ['tom', 'jack', 'john']
directors = [ [d, ] for d in director ]
roles=[['kate', 'back', 'jon'], ['tian', 'den', 'lucy'], ['cruse', 'jodan', 'peter']]
sql = "INSERT INTO movies (title, description, directors, roles) VALUES (%s, %s, %s, %s);"
for obj in zip(title, description, directors, roles):
cur.execute(cur.mogrify(sql, obj))
conn.commit()
cur.close()
conn.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.