代码之家  ›  专栏  ›  技术社区  ›  ZhaoGang

psycopg2.ProgrammingError:“select”处或附近出现语法错误

  •  1
  • ZhaoGang  · 技术社区  · 8 年前

    我有一个python脚本,它读取一个sql文件并执行其中存储的sql命令。但在执行时,我犯了以下错误:

    psycopg2.ProgrammingError: syntax error at or near "select"
    LINE 1: select * from image
    

    sql文件内容为:

    从图像中选择*

    这很简单,应该是正确的。

     cur=conn.cursor()
     string=open(script,'r',encoding='utf-8').read()#script is the sql file
     cur.execute(string)
    

    有人能给你建议吗?

    ----更新-----

    def list_(csv, sql=None , script=None , host = None, dbname=None , user=None , pwd=None):
        print(sql)
        print(script)
        if (sql):
            print("sql")
            with conn2db(host,dbname,user,pwd) as conn:
                cur = conn.cursor()
                cur.execute(sql)
        if (script):
            print("script")
            with conn2db(host,dbname, user, pwd) as conn:
                cur = conn.cursor()
                string =  open(script, 'r', encoding='utf-8').read()
                print(string)
                cur.execute(string)
                #cur.execute(open(script, 'r', encoding='utf-8').read())
        with open(csv,'w') as file:
            for record in cur:
                mystr=str(record)[1:-2] if str(record)[-1]==',' else str(record)[1:-1]
                file.write(mystr+'\n')
                #file.write('\n')
    
    1 回复  |  直到 7 年前
        1
  •  0
  •   BryceH    8 年前

    在数据库中查看连接字符串以及模式和表将有所帮助。请确认这些都是正确的。此外,在从文件中读取SQL字符串或在SQL字符串的末尾添加分号后,对其运行.strip()值得一试。

        2
  •  0
  •   ZhaoGang    7 年前

    今天我又遇到了这个问题,我删除了原始文件,创建了一个新文件,并键入了sql命令。现在一切都很有魅力。