简体   繁体   中英

Getting brackets while executing query into mysql database using python

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..?

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)

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])

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM