2014-04-23 22 views
2

基本上一切,我從表中返回數據:Python中的MySQL返回表中的數據 - 只顯示在同一行

>mysql> SELECT x,y FROM xandy; 
>+------+------+ 
>| x | y | 
>+------+------+ 
>| 5 | 2 | 
>| 4 | 6 | 
>| 7 | 6 | 
>| 4 | 6 | 
>| 8 | 7 | 
>| 4 | 6 | 
>| 11 | 33 | 
>| 33 | 22 | 
>+------+------+ 
>8 rows in set (0.00 sec) 

(抱歉格式差)

def fetch(): 

     try: 
     db = MySQLdb.connect("localhost",user="root",passwd="****",db="logger") 

     cursor=db.cursor() 

     SQLString = "SELECT x,y FROM xandy;" 
     cursor.execute(SQLString) 
     rows=cursor.fetchall() 

     return rows 
     db.close() 

然而,當我得到返回值我在一行中得到它的格式爲:

((5.0,2.0),(4.0,6.0),(7.0,6.0),(4.0,6.0),(8.0,7.0) ),(4.0,6.0),(11.0, .0),(33.0,22.0),(6.0,4.0))

有沒有辦法以簡單的表格形式顯示它,即兩列與x和y? (p.s我將在這一步之後使用gnuplot)

+0

在一個側面說明:您'db.close()'從未達到。 – Hyperboreus

回答

0

這個數據看起來不錯,它是一個元組元組,你可以像表一樣索引它。

即你可以得到與

rows[m][n] 

你只是希望打印出來的2列行米元素和列n?

for x, y in rows: 
    print("{0}, {1}".format(x,y)) 
+0

我只能返回「5.0,2.0」而不是其他的?還有其他建議嗎? – user3388585

+0

當你說你只能返回「5.0,2.0」時,你的意思是什麼?你在做「rows = cursor.fetchall()」,然後是「返回行」?我很困惑,您是否在查看數據或返回數據時遇到問題。您在問題中提到的返回對象中包含所有數據。所以這只是一個問題,你想要什麼格式的數據。 – eboswort

0

假設一個函數調用fetch類似你上面,你可能會使用這樣的:

rows = fetch() 
print '\n'.join(' '.join(str(x) for x in row) for row in rows) 
相關問題