我有一個xx.db文件,我可以通過這些鍵進行訪問,將鍵打印到屏幕上進行檢查。有很多級別的按鍵,我在這裏顯示最高級別。使用db文件填充MySQL表
for filename in filenames:
with contextlib.closing(shelve.open(filename, flag = "w")) as data:
prdata = data['all'].keys()
打印PRDATA 我在Python這樣創建的表:
tbl= """CREATE TABLE IF NOT EXISTS table2 (
`class` varchar(30) default NULL,
`name` varchar(120) default NULL,
)"""
cursor.execute(tbl)
我想加載數據的第一集合的輸出(來自.db文件)到所創建的MySQLdb的表。我應該如何繼續? 我首先需要從db文件創建一個文本文件嗎? 我讀過LOAD DATA INFILE是從文本文件中將數據加載到數據庫的快速方法。由於db中有很多數據,如果我可以先跳過創建文本文件,速度會更快。
編輯: 曾經嘗試這樣做,提供了語法錯誤「您的SQL語法錯誤;檢查對應於你的MySQL服務器版本使用附近的「PRDATA INTO TABLE表2 \ n \ t時的正確語法手冊FIELDS TERMINATED BY' '' 我不正確,也明白語法文檔如何括起來在Python
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char']
]
爲文件名的文件名:。 與contextlib.closing(shelve.open(文件名,flag =「w」))作爲數據:
prdata = data ['all']。keys( )cursor.execute( 「」 「LOAD DATA INFILE PRDATA INTO TABLE表2 FIELDS TERMINATED BY '' 」「」)
更新:決定與INSERT進入表2(類名稱) VALUE(%S,S) 工作正常
當然,但實際數據駐留在.db文件。所以我希望能夠從中獲益,而不是手動插入「class1」,「name1」等。 – Tom