gpt4 book ai didi

python - 使用 db 文件填充 MySQL 表

转载 作者:行者123 更新时间:2023-11-29 14:36:25 30 4
gpt4 key购买 nike

我有一个 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']
]

for filename in filenames: with contextlib.closing(shelve.open(filename, flag = "w")) as data:
prdata = data['all'].keys()

cursor.execute("""LOAD DATA INFILE prdata INTO TABLE table2 FIELDS TERMINATED BY ' ' """)

更新:决定使用 INSERT INTO table2 (class,name) VALUE (%s,%s)工作正常

最佳答案

创建连接时,不要忘记添加 local_infile 参数

connection = MySQLdb.connect(host="localhost", user="appuser", passwd="",
db="test", local_infile = 1)

否则会出现这个错误:

ERROR 1148 (42000): The used command is not allowed with this MySQL version

关于python - 使用 db 文件填充 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944624/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com