2016-06-17 2 views
0

, 내가 thefollowing 기능 CSV에 데이터베이스에서 추출 열 이름의 cx_Oracle과 인쇄 변수 금액 :파이썬 - 주어진 SQL 문을 기반으로

def extract_from_db(): 
    with open('myfile.csv','w') as outfile: 
     for row in cursor: 
      outfile.write(str(row[0])+";"+str(row[1])+";"+str(row[2])+";"+str(row[3])+";"+str(row[4])+";"+str(row[5]) 
       +";"+str(row[6])+";"+str(row[7])+";"+str(row[8])+";"+str(row[9])+";"+str(row[10])+";"+str(row[11])+";"+str(row[12]) 
       +";"+str(row[13])+";"+str(row[14])+"\n") 

가 어떻게 파일 칼럼의 시작 부분에 쓸 수 있습니다 열의 가변 양에 대한 이름, 그래서 그것을 하드 코드하지 않아도됩니까? 또한 하드 코드 된 연결은 꽤 추합니다.

답변

1

당신은 description

desc = cursor.description 

기능을 사용할 수 있습니다. 그것은 7 항목 시퀀스의 시퀀스를 반환하고 당신은 내가 또한 CSV로 당신의 쓰기를 수행하는 팬더를 사용하는 것이 좋습니다

for seq in desc: 
    print seq[0] 

에서 열 이름을 얻을 수 있습니다.

1

에브라힘 Jackoet은 이미 당신이 당신의 쿼리에서 열 이름을 얻을 수 cursor.description를 사용할 수 있음을 언급했다. 처리 할 행 수가 많지 않은 경우 csv module이 내장되어 행을 간단하게 작성합니다.

import csv 

with open("myfile.csv", "w") as outfile: 
    writer = csv.writer(outfile, delimiter = ";") 
    for row in cursor: 
     writer.writerow(row) 
: 그것은 또한

예를 인용 필요한 모든 다음과 처리

관련 문제