我有两个 Dataframe 。
一个是音乐。
名称|日期|版本|Song_ID|Singer_ID
-|
LA|01.05.2009|1|1|1
秒|13.07.2009|1|2|2
墨西哥|13.07.2009|1|3|1
出发|13.09.2009|1|4|3
Hello|18.09.2009|1|5|(4,5)
和另一个名为Singer的 Dataframe
Singer|国籍|Singer_ID
-|-|
JT Watson|美国|1
Rafinha|巴西|2
Juan Casa|西班牙|3
Kidi|美国|4
Dede|美国|5
现在,我想使用Sqlite3从这两个 Dataframe 创建一个名为Musicten的数据库。
到目前为止,我所做的是:
import sqlite3
conn = sqlite3.connect('musicten.db')
c = conn.cursor()
c.execute('''
CREATE TABLE IF NOT EXISTS singer
([Singer_ID] INTEGER PRIMARY KEY, [Singer] TEXT, [nationality] TEXT)
''')
c.execute('''
CREATE TABLE IF NOT EXISTS music
([SONG_ID] INTEGER PRIMARY KEY, [SINGER_ID] INTEGER SECONDARY KEY, [name] TEXT, [Date] DATE, [EDITION] INTEGER)
''')
conn.commit()
import sqlite3
conn = sqlite3.connect('musicten.db')
c = conn.cursor()
c.execute('''
INSERT INTO singer (Singer_ID, Singer,nationality)
VALUES
(1,'JT Watson',' USA'),
(2,'Rafinha','Brazil'),
(3,'Juan Casa','Spain'),
(4,'Kidi','USA'),
(5,'Dede','USA')
''')
c.execute('''
INSERT INTO music (Song_ID,Singer_ID, name, Date,Edition)
VALUES
(1,1,'LA',01/05/2009,1),
(2,2,'Second',13/07/2009,1),
(3,1,'Mexico',13/07/2009,1),
(4,3,'Let's go',13/09/2009,1),
(5,tuple([4,5]),'Hello',18/09/2009,1)
''')
conn.commit()
但这段代码似乎无法向 Dataframe 插入值。
因此,我的目标是将值插入到数据库有两个带有值的表的表中。
1条答案
按热度按时间bgibtngc1#
首先,不要第二次导入Sqlite3。此外,您仍然有一个开放的连接。
与SQL有关的两个问题:
‘s go’(单引号字符必须双引号/转义
元组([4,5])=>‘(4,5)’