我有兩個資料框。
一是音樂。
| 姓名 | 日期 | 版 | Song_ID | 歌手 ID |
|---|---|---|---|---|
| 洛杉磯 | 01.05.2009 | 1 | 1 | 1 |
| 第二 | 13.07.2009 | 1 | 2 | 2 |
| 墨西哥 | 13.07.2009 | 1 | 3 | 1 |
| 我們走吧 | 13.09.2009 | 1 | 4 | 3 |
| 你好 | 18.09.2009 | 1 | 5 | (4,5) |
還有另一個名為singer的資料框
| 歌手 | 國籍 | 歌手 ID |
|---|---|---|
| JT沃森 | 美國 | 1 |
| 拉菲尼亞 | 巴西 | 2 |
| 胡安·卡薩 | 西班牙 | 3 |
| 基迪 | 美國 | 4 |
| 德德 | 美國 | 5 |
現在我想使用 sqlite3 從這兩個資料幀創建一個名為 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()
但是此代碼似乎無法將值插入資料框。
所以我的目標是將值插入到資料庫有兩個帶有值的表的表中。
uj5u.com熱心網友回復:
首先,不要第二次匯入 sqlite3。此外,您仍然有一個開放的連接。
SQL 的兩個問題:
'Let'''s go'(單引號字符必須加倍/轉義
tuple([4,5]) => '(4,5)'
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/519831.html
標籤:Pythonsqlite
上一篇:無法通過sqlite3在python中執行SQL查詢以找出唯一編號
下一篇:基于兩個資料框創建資料庫
