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 行目、メインの失敗例: 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 行 目、 weakrefインポート プロキシからの初期化中 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 に答える