我正在尝试使用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()
我是否遗漏了代码中的内容?有什么建议吗?
答案 0 :(得分:0)
csv.reader(open(emoticons, 'rb'))
将文件读取为CSV,并使用逗号作为默认分隔符,并返回一个列表(row
变量)。
c.execute("INSERT INTO Emoticons (Emotions) VALUES (%s)", row)
等待row
中只有一个元素的元组(因为查询字符串中有一个%s
)。
您的文件可能包含逗号,这些行将被拆分为多个无法格式化为查询的元素。
如果要将文件中的整行插入数据库,则不必使用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()