2017-10-09 51 views
1

我有一個腳本來向MySQL發送查詢並將結果寫入文件。我的問題是,文本輸出看起來是這樣的:將元組轉換爲字符串列表,每行一個項目

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

而且我想它看起來就像這樣:

DB11A-DBD27 
DB11A-DBD28 
DB62A-DBD1 
DB62A-DBD2 
DB62A-DBD11 
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() 

我試着strip()但不斷出現類型錯誤。有誰知道我可以如何將這些元組轉換爲字符串列表中的每個項目在一個新行中,如上所示?

+0

結果是什麼?你能打印結果的輸出嗎?看起來你需要再次解壓縮? – Bahrom

+1

它看起來像你只是想選擇db-p1聯合所有db-p2 ...'選擇DB-P1從發行版所有SELECT DB-P2從發行版# – xQbert

回答

1

我想你只是需要一個工會在這裏和兩個選擇。

替代unionu nion以下。它不會讓我保存與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

我添加了聯合,它確實分割了元組,但是我的輸出文件還是相同的格式。我如何擺脫你,()並保存他們每行1項? – Damon

+0

你需要'print'「.join(row)'不能for循環現在只是'f.write(str(row))'?因爲我們每行只有1個值?我絕不是一個蟒蛇大師。 SQL是我的轄區。你也可以看到類似的問題:https://stackoverflow.com/questions/6182964/why-is-parenthesis-in-print-voluntary-in-python-2-7 – xQbert

+0

經過進一步審查:我很確定你'在此之後:使用csv輸出的https://stackoverflow.com/questions/20618640/how-to-write-to-file-without-parenthesis-in-python;或者將'str(row)'行改爲建議的內容。 – xQbert

相關問題