簡體   English   中英

使用for循環python在mysql表中插入值

[英]Inserting value in mysql table using for loop python

我有304MB的文本文件,其中每行都包含逗號(,)分隔的值,我正在逐行讀取文件並使用for循環插入值,但是在插入21行之后,我仍然收到此錯誤。 這是代碼

import MySQLdb

myfile = open('/home/vaibhav/Desktop/question1.csv', 'r')

db = MySQLdb.connect(host="localhost", 
                 user="root", 
                  passwd="admin", 
                  db="question1agg") 

for line in myfile:

     my_line_list = line.split(',')
     string = ''
     for value in my_line_list:
            string = string + "'" + value + "',"
            query_string = string[:-1]
      final_query = "insert into question1 values"+"("+query_string+");"
      cur = db.cursor()
      cur.execute(final_query)
      db.commit()
db.close()

這是我得到的錯誤

 Traceback (most recent call last):
 File "da.py", line 19, in <module>
   cur.execute(final_query)
   File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
   self.errorhandler(self, exc, value)
   File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in        defaulterrorhandler
   raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check    the manual that corresponds to your MySQL server version for the right syntax to use near 's Solids','Men','NULL','Solid','/Products/Legwear','/Products/Legwear/AmericanEs' at line 1")

您的值之一似乎帶有撇號。 您需要轉義撇號以避免該錯誤。

例如,您有一個像這樣的值:

That's right!

因此,您的插入內容如下所示:

insert into question1 values('value1','That's right!','value2');

您應該將撇號轉義以使插入如下:

insert into question1 values('value1','That''s right!','value2');

看起來像是在您的一行中,有一個撇號使MySQL混亂。 從錯誤消息-

's Solids','Men','NULL','Solid'

這里很好地解釋了您的問題及其解決方案-Python MySQL轉義特殊字符

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM