1

对于当前任务,我必须使用 python 将 2 个 .txt 文件导入 MySQLdb。我有很大的麻烦。我尝试了各种方法,但我根本做不到。

在过去的几天里,我搜索了这个网站和许多其他网站,但我根本无法让它工作。每当我尝试将其他人的解决方案调整为我自己的代码时,它都会失败 - 所以我认为我应该直接为我自己的代码寻求帮助。

这是我到目前为止所拥有的:

import MySQLdb 

# connect to database
mydb = MySQLdb.connect("localhost","root","0dy5seuS","cars_db")

# define the function
def data_entry(cars_for_sale):

# cursor creation
    cursor = mydb.cursor()

#load the file 'cars_for_sale.txt' into the database under the table 'cars_for_sale'

    sql = """LOAD DATA LOCAL INFILE 'cars_for_sale.TXT'
        INTO TABLE cars_for_sale
        FIELDS TERMINATED BY '\t'
        LINES TERMINATED BY '\r\n'"""

    #execute the sql function above
    cursor.execute(sql)

    #commit to the database
    mydb.commit()

    #call data_entry(cars_for_sale) function
    data_entry(cars_for_sale)

    mydb.close()

我几乎无法绕开它,任何帮助将不胜感激。我现在从测试功能中得到以下反馈:

尝试:data_entry("cars_for_sale") 预期:插入到 cars_for_sale 的行数为 7049 * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ***文件“ main ”,第 4 行,在main失败示例:data_entry("cars_for_sale") 引发异常:

回溯(最近一次通话最后):

文件“C:\Python27\lib\doctest.py”,第 1289 行,在 __run compileflags,1) 在 test.globs

文件“”,第 1 行,在 data_entry("cars_for_sale")

文件“E:/Uni/104/Portfolio 2/MediumTask_DataStatistics/question/TEST2_data_statistics.py”,第 270 行,在 data_entry data_entry(cars_for_sale) *它重复这最后一部分数百/千次”

以下几行是在上面重复的错误之后。

文件“C:\Python27\lib\site-packages\MySQLdb\connections.py”,第 243 行,光标返回(cursorclass 或 self.cursorclass)(self)
文件“C:\Python27\lib\site-packages\MySQLdb \cursors.py",第 51 行, init from weakref import proxy RuntimeError: 调用 Python 对象时超出最大递归深度

我知道这是一个无限递归,尽管我不知道如何阻止它。谢谢

4

1 回答 1

1

以下代码重现了您的错误"RuntimeError: maximum recursion depth exceeded while calling a Python object"

def data_entry(cars_for_sale):
    data_entry(cars_for_sale)

您在这里不需要递归(无论如何它都使用不正确)。

我知道这是一个无限递归,尽管我不知道如何阻止它。

只需删除函数data_entry内部的调用即可data_entry

于 2012-10-10T10:27:37.537 回答