簡體   English   中英

python:將列表數據插入數據庫

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM