sqlite 基于两个 Dataframe 插入值创建数据库

6qftjkof  于 2022-11-14  发布在  SQLite
关注(0)|答案(1)|浏览(204)

我有两个 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 插入值。
因此,我的目标是将值插入到数据库有两个带有值的表的表中。

bgibtngc

bgibtngc1#

首先,不要第二次导入Sqlite3。此外,您仍然有一个开放的连接。
与SQL有关的两个问题:
‘s go’(单引号字符必须双引号/转义
元组([4,5])=>‘(4,5)’

相关问题