2017-10-09 1 views
1

MySQL에 쿼리를 보내고 결과를 파일에 쓰는 스크립트가 있습니다.라인 당 하나의 항목으로 튜플을 문자열 목록으로 변환

(u'DB11A-DBD27', u'DB11A-DBD28')(u'DB62A-DBD1', u'DB62A-DBD2')(u'DB62A-DBD11', u'DB62A-DBD12')... 

그리고는 다음과 같이 그것을 좋아하는 것 :

cnx = connectDB.cnx 
query = "SELECT DB-P1,DB-P2 FROM distribution" 

cur = cnx.cursor() 
sql = cur.execute(query) 

results = cur.fetchall() 
f = open('Master.txt', 'w') 
for row in results: 
    row = str(row) 
    print "".join(row) 
    f.write(row) 
f.close() 

내가 시도 : 여기

DB11A-DBD27 
DB11A-DBD28 
DB62A-DBD1 
DB62A-DBD2 
DB62A-DBD11 
DB62A-DBD12 
... 

는 코드 내가 가진 문제는 텍스트 출력은 다음과 같습니다이다 strip() 계속 입력 오류가 발생합니다. 누구든지 위의 그림과 같이 새 줄에 각 항목이있는 문자열 목록으로이 튜플을 변환하는 방법을 알고 있습니까?

+0

'결과 '에 무엇이 있습니까? 결과물을 출력 할 수 있습니까? 다시 포장을 풀어야 할 필요가있는 것처럼 보입니까? – Bahrom

+1

db-p1 유니온을 선택하고 싶습니다. db-p2 ...'SELECT DB-P1 배포판에서 모두 SELECT DB-P2 FROM distribution' – xQbert

답변

1

당신은 여기에 노동 조합이 필요하고 두 명이 선택해야한다고 생각합니다.

아래 u nion에 대해 union을 대체하십시오. union으로 저장할 수 없습니다.

cnx = connectDB.cnx 
query = "SELECT DB-P1 Z FROM distribution u nion all SELECT DB-P2 FROM distribution" 

cur = cnx.cursor() 
sql = cur.execute(query) 

results = cur.fetchall() 
f = open('Master.txt', 'w') 
for row in results: 
    row = str(row) 
    print "".join(row) 
    f.write(row) 
f.close() 

그러나 주문이 문제가되는 경우 적절하게 주문할 수 있도록 테이블의 고유 키를 알아야 할 수도 있습니다.

+0

유니온을 추가했고 튜플을 분할했지만 출력 파일을 분할했습니다. 여전히 같은 형식입니다. u,()를 없애고 한 줄에 한 항목을 저장하려면 어떻게합니까? – Damon

+0

'print ""join "(행)'for 루프가'f.write (str (row))'이 될 수 없습니까? 행당 1 개의 가치가 있기 때문에? 나는 결코 비단 전문가가 아닙니다. SQL은 나의 bailiwick이다. 유사한 질문을 볼 수도 있습니다. https://stackoverflow.com/questions/6182964/why-is-parenthesis-in-print-voluntary-in-python-2-7 – xQbert

+0

추가 검토 후 : 이 후 : https://stackoverflow.com/questions/20618640/how-to-write-to-file-without-parenthesis-in-python csv 출력을 사용하여; 'str (row)'줄을 제안 된 것으로 바꾼다. – xQbert

관련 문제