Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python无法将CSV文件加载到MySql中_Mysql_Python 2.7 - Fatal编程技术网

使用python无法将CSV文件加载到MySql中

使用python无法将CSV文件加载到MySql中,mysql,python-2.7,Mysql,Python 2.7,我试图将trans_dt加载到cmdels表中。但是它抛出了语法错误。如何将局部变量添加到表中。局部变量名为newDate import mysql.connector config = { 'user':'root', 'password':'password', 'host':'127.0.0.1', 'database':'nse' } conn= mysql.connector.connect(**config) c=conn.cursor() def insertRows(fileNa

我试图将trans_dt加载到cmdels表中。但是它抛出了语法错误。如何将局部变量添加到表中。局部变量名为newDate

import mysql.connector
config = {
'user':'root',
'password':'password',
'host':'127.0.0.1',
'database':'nse'
}
conn= mysql.connector.connect(**config)
c=conn.cursor()
def insertRows(fileName,c):
    delimiter=r','
    dateString=r'%d-%b-%Y'
    file=fileName.split("/")[-1]

    if file.startswith("MTO"):
        newDate=new_Date(file)

        c.execute("Load data local infile %s into table cmdels fields terminated by %s 
        ignore 4 lines(recno,srno,symbol,series,qtytrd,qtydel,qtyper,trans_dt) 
        SET trans_dt=(@trans_dt,%s)", (fileName, delimiter,newDate))

localExtractFilePath="/Users/data/nse"

import os

def new_Date(s):
return s[4:-4]

for file in os.listdir(localExtractFilePath):
    if file.endswith(".DAT"):
        insertRows(localExtractFilePath+"/"+file,c)
        print "Loaded file "+file+" into database"
       conn.commit()
c.close()
conn.close()

单引号字符串文字不能跨越换行符。您可以使用三重引号字符串(
“加载数据…”“
),但字符串中会出现额外的空格和换行符,这可能会导致它们自身的问题。一个好的选择是在每行末尾加上一个结束引号,并让python在编译步骤中将它们连接起来

   c.execute("Load data local infile %s into table cmdels fields terminated by %s"
    " ignore 4 lines(recno,srno,symbol,series,qtytrd,qtydel,qtyper,trans_dt)" 
    " SET trans_dt=(@trans_dt,%s)", (fileName, delimiter,newDate))

您可以发布完整的跟踪以便我们可以轻松地发现行吗?第23行,在insertRows c.execute(“将数据本地填充%s加载到以%s终止的表cmdels字段中忽略4行(recno、srno、symbol、series、qtytrd、qtyper、trans_dt)SET trans_dt=(@trans_dt,%s)”,(fileName、delimiter、newDate))文件“/anaconda2/lib/python2.7/site packages/mysql/connector/cursor.py”,第507行,在执行self.\u handle\u result(self.\u connection.cmd\u query(stmt))中将其添加到代码块中的问题中,这样我们可以更容易地阅读它!…并包括整个跟踪,包括错误行。部分问题是单引号字符串文字不能跨行。应该存在某种EOL错误。您可以在execute中的每行末尾和开头添加引号。