Reputation: 157
I need help!! I have written a python code which queries the database and prints the result in the Linux shell prompt here is the code :
#!/usr/bin/python
import MySQLdb
import sys
import config
import csv
db = MySQLdb.connect(config.host,config.user,config.password,config.dbname)
cursor=db.cursor()
print "Connected to the Mysql database"
cursor.execute("use " + config.dbname)
cursor.execute('SELECT DISTINCT LEARNER FROM EMS_data LIMIT 5')
result= cursor.fetchall()
print result
db.commit()
cursor.close()
This is what i get :
(("'Fang ",), ("'Nikhil '",), ("'Gavin '",), ("'Vamsi'",), ("'Shah'",))
How to remove these braces..?
Upvotes: 3
Views: 5362
Reputation: 101
The result returned by cursor.fetchall() is a tuple of tuples containing the fetched data. Each tuple represents a fetched row.
1st line of code below will take tuples one by one.
2nd line will print not taken tuple itself, but exactly first element from it (without commas and brackets)
for row in result:
print(row[0])
Upvotes: 1
Reputation: 1171
The result returned by cursor.fetchall() is a tuple of tuples containing the fetched data. Each tuple represents a fetched row.
Because you are printing a tuple of tuples, you are seeing the braces. In order to display the data in a prefered format you'll have to iterate over the result and print each row accordingly.
The example below would print each row on a new line, and will separate the columns with a vertical bar:
for row in result:
print " | ".join(row)
Upvotes: 6