PeteB987
PeteB987

Reputation: 19

Import text files into mysqldb

For a current assignment, I must import 2 .txt files into a MySQLdb with python. I'm having immense trouble. I have tried various methods and I simply can't do it.

I've searched through this site and many others over the past few days and I simply cannot get this to work. Whenever I've tried to adapt another person's solution to my own code, it fails - so I figure I should ask for help directly for my own code.

This is what I have so far:

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()

I can hardly wrap my head around it, any help would be appreciated it. I now get the following feedback from the testing function:

Trying: data_entry("cars_for_sale") Expecting: The number of rows inserted to cars_for_sale is 7049 **************************************** File "main", line 4, in main Failed example: data_entry("cars_for_sale") Exception raised:

Traceback (most recent call last):

File "C:\Python27\lib\doctest.py", line 1289, in __run compileflags, 1) in test.globs

File "", line 1, in data_entry("cars_for_sale")

File "E:/Uni/104/Portfolio 2/MediumTask_DataStatistics/question/TEST2_data_statistics.py", line 270, in data_entry data_entry(cars_for_sale) *it repeats this last portion several hundred/thousand times"

The following few lines are after the repeated error above.

File "C:\Python27\lib\site-packages\MySQLdb\connections.py", line 243, in cursor return (cursorclass or self.cursorclass)(self)
File "C:\Python27\lib\site-packages\MySQLdb\cursors.py", line 51, in init from weakref import proxy RuntimeError: maximum recursion depth exceeded while calling a Python object

I'm aware that this is an infinite recursion although I have no idea how to stop it. Thanks

Upvotes: 1

Views: 1377

Answers (1)

jfs
jfs

Reputation: 414885

The following code reproduces your error "RuntimeError: maximum recursion depth exceeded while calling a Python object":

def data_entry(cars_for_sale):
    data_entry(cars_for_sale)

You don't need recursion here (and it is used incorrectly anyway).

I'm aware that this is an infinite recursion although I have no idea how to stop it.

Just remove the data_entry call inside the data_entry function.

Upvotes: 1

Related Questions