2017-11-22 18 views
1

テーブルは表示されていますが、すべてのデータがHYで表示されています。 19行目がHYの下に表示され、20行がAYの下に表示されます。実際には、AY列が作成されつつあるが、すべての行がクエリは私に間違って見え形成されているpythonからのデータがppostgresqllの2つではなく1つの列に表示されます

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

import psycopg2 
import sys 
import csv 
from itertools import count 
path = r'C:\Users\sammy\Downloads\E0.csv' 
with open(path, "r") as csvfile: 
    readCSV = csv.reader(csvfile, delimiter=",") 
    firstline = 1 
    con = None 
    con = psycopg2.connect("host='localhost' dbname='football' user='postgres' password='XXX'") 
    cur = con.cursor() 
    cur.execute("DROP TABLE testtest1234") 
    cur.execute("CREATE TABLE testtest1234 (HY INTEGER, AY INTEGER)") 

try: 
    for row in readCSV: 
     if firstline: 
      firstline=0 
      continue 
     new_data = row[19] 
     newer_data = row[20] 
     print(new_data) 
     print(newer_data) 
     cur.execute("INSERT INTO testtest1234 values ("+new_data+"), ("+newer_data+")") 
except psycopg2.DatabaseError as e: 
    if con: 
     con.rollback() 
     print ("Error %s % e", e) 
     sys.exit(1) 
finally: 
    if con: 
     con.commit() 
     con.close() 

print(" ".join(row)) 
out=open("new_data.csv", "w") 
output = csv.writer(out) 

for row in new_data: 
    output.writerow(row) 

out.close() 

答えて

1

方法[ヌル]を言う、ここであなたはそれを動作させることができる方法です。

テーブルに挿入するデータの組を作成します。

data = (new_data, newer_data) 

続いてクエリ文を作成します。

cursor = conn.cursor() 
cursor.execute(query, data) 

query = "INSERT INTO items (HY, AY) VALUES (%s, %s);" 

次に、あなたのようにクエリを実行することができますそれをコミットします:

conn.commit() 

ここで編集したコード:

for row in readCSV: 
    if firstline: 
     firstline=0 
     continue 
    new_data = row[19] 
    newer_data = row[20] 
    data = (new_data, newer_data) 
    query = "INSERT INTO testtest1234 (HY, AY) VALUES (%s, %s);" 
    print(new_data) 
    print(newer_data) 
    cursor = con.cursor() 
    cursor.execute(query, data) 
+0

は、あなたの入力をありがとう。これらを正確に追加する場所がわからない場合は、コードをコピーしてコピーして関連する部分を編集してください。どうもありがとう! –

+0

これはあなたのtryブロックの中に入り、最後の行をこれらの4行に置き換えて動作するはずです。 – Sheshnath

+0

私は別の問題を扱っています。 L28で: "cur.execute(" testtest1234値(%sは、%sの)。INSERT INTO "( "+ NEW_DATA +"、 "+ newer_data +" eとpsycopg2.DatabaseError除く) : CON場合:" 除きますeとpsycopg2.DatabaseError: ^ にSyntaxError:無効な構文 奇妙な1 ..答える –

関連する問題