0

まず、大学のWebサイトから、タプルのタプルの形式で大学のリストを抽出しました。

(('name1'、'address1')、('name2'、'address2')、('name3'、'address3'))

次に、これを「sample」という名前のデータベースと「collegelist」テーブルに記述します。テーブルには2つのフィールドがあります(名前varchar(400)はnullではなく、アドレスvarchar(500)):

コードは次のとおりです。

for college in tuples:
   cursor.execute('INSERT INTO collegelist (name, address) VALUES ("%s", "%s")') %(college[0], college[1])
   db.commit()
db.close()

ただし、常に次のTypeErrorが発生します。

TypeError: unsupported operand type(s) for %: 'long' and 'tuple'

また、名前だけを挿入してアドレスを残そうとすると、次のタイプのエラーが発生します。

TypeError: unsupported operand type(s) for %: 'long' and 'str'

今、私は「長い」タイプがどこから来たのかわかりません。プログラムには文字列とタプルのみが含まれています。

:大学の名前と住所には、一重引用符、二重引用符、ダッシュ、ピリオドがあります。

このエラーが発生するのはなぜですか。どうすれば削除できますか?前もって感謝します。

4

1 に答える 1

1

cursor.execute('INSERT INTO collegelist (name, address) VALUES ("%s", "%s")') <--

その時点で、への呼び出しを閉じましたexecute。また、引数をに渡す必要がexecuteあります。決して、引数をクエリに解析しないでください。

q_insert = "INSERT INTO collegelist (name,address) VALUES (%s,%s)"
for college in tuples:
    cursor.execute(q_insert,(college[0], college[1]))
    db.commit()
于 2012-06-25T05:49:42.997 に答える