2016-08-18 2 views
0

나는라고 포스트 그레스 테이블에 파일 이름을 삽입하려면 다음 코드를 '로그'는 포스트 그레스 테이블에 파일 이름을 삽입

c = engine.connect() 
conn = c.connection 
cur = conn.cursor() 

cur.execute("SELECT filename from logs") 
rows1 = cur.fetchall() 
rows1 = [x[0] for x in rows1] 

for root, directories, filenames in os.walk(path): 
    for filename in filenames: 
     fname = os.path.join(root,filename) 
     if os.path.isfile(fname) and fname[-4:] == '.log': 
      if fname not in rows1: 
      print fname 
      cur.execute(""" INSERT INTO logs(filename) VALUES (%(fname)s)""") 
      conn.commit() 

내가

ProgrammingError: syntax error at or near "%" 
LINE 1: INSERT INTO logs(filename) VALUES (%(fname)s) 

내가 아는 수있는 오류를 얻고있다 내가 잘못하고있는거야?

답변

0

쿼리에 매개 변수를 전달하지 않았으므로 대체 할 수 없습니다. 어댑터는 리터럴 문자열 (%(fname)s)을 Postgres에 전달합니다.

cur.execute("""INSERT INTO logs(filename) VALUES (%(fname)s)""", {'fname': fname'}) 
+0

이것은 효과가 있습니다 .. 감사합니다. Daniel – ckp