0

Python を使用して MySQL にデータを挿入しようとしています。,_, , :-)をデータベースに挿入するとエラーが発生します。

TypeError: not all arguments converted during string formatting             

コード内:

emoticons = 'C:/Users/user/Desktop/emoticons.txt'
csv_data = csv.reader(open(emoticons, 'rb'))
count = 0
for row in csv_data:
   count = count + 1
   c.execute("INSERT INTO Emoticons (Emotions) VALUES (%s)", row)
db.close()

コードで何かを見逃しましたか?何か提案はありますか?

4

1 に答える 1

0
csv.reader(open(emoticons, 'rb'))

rowファイルを CSV として読み取り、デフォルトのセパレータとしてコンマを使用し、リスト (変数)を返します。

c.execute("INSERT INTO Emoticons (Emotions) VALUES (%s)", row)

row正確に 1 つの要素を持つタプルを待機します (%sクエリ文字列に 1 つあるため)。

ファイルにはおそらくコンマが含まれており、これらの行はクエリにフォーマットできないいくつかの要素に分割されます。

ファイルから DB に行全体を挿入する場合は、次を使用する必要はありませんcsv

emoticons = 'C:/Users/user/Desktop/emoticons.txt'
with open(emoticons, 'r') as f:
    for row in f:
        c.execute("INSERT INTO Emoticons (Emotions) VALUES (%s)", (row,))
db.close()
于 2012-05-25T14:07:12.923 に答える