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

以逗号作为默认分隔符将文件读取为 CSV 并返回一个列表(row变量)。

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

等待一个row只有一个元素的元组(因为%s查询字符串中有一个)。

您的文件可能包含逗号,这些行将被分成几个元素,这些元素无法格式化到查询中。

如果要将文件中的整行插入 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 回答