【发布时间】:2012-02-15 04:59:50
【问题描述】:
我有一个 xx.db 文件,我可以通过按键访问该文件,将按键打印到屏幕上进行检查。有很多级别的键,我这里显示的是顶级。
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 是一种将数据从文本文件加载到数据库的快速方法。由于数据库中有很多数据,如果我可以跳过先制作文本文件会更快。
编辑: 试过这个,提供语法错误“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 'prdata INTO TABLE table2 \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(filename, flag = "w")) 作为数据:
prdata = data['all'].keys()cursor.execute("""LOAD DATA INFILE prdata INTO TABLE table2 由“ ”终止的字段 """)
更新:决定使用 INSERT INTO table2 (class,name) VALUE (%s,%s) 工作正常
【问题讨论】: