comment se débarrasser de sqlite3 cursor.fetchall () en python
import sqlite3
class class1:
def __init__(self):
self.print1()
def print1(self):
con = sqlite3.connect('mydb.sqlite')
cur = con.cursor()
cur.execute("select fname from tblsample1 order by fname")
ar=cur.fetchall()
print(ar)
class1()
donne une puissance comme indiqué ci-dessous
[(u'arun',), (u'kiran',), (u'kulku',), (u'sugu',)]
je dois enlever le u à partir de la matrice et j'ai besoin de sortie comme indiqué ci-dessous
['arun', 'kiran', 'kulku', 'sugu']
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Si vous avez besoin que les chaînes récupérées à partir de votre base de données sqlite être retourné en UTF-8 au lieu de l'Unicode, la mise en place de votre connexion en utilisant le text_factory propery:
Voir ce pour les détails:
http://docs.python.org/library/sqlite3.html#sqlite3.Connection.text_factory
Qui prend soin de la "u" en face de vos chaînes. Vous devrez convertir votre liste de tuples d'une liste:
La
u
préfixe indique que la chaîne est un Unicode chaîne. Si vous êtes sûr que la chaîne est une chaîne ASCII de base, vous pouvez transformer la chaîne unicode en unicode non une avec un simplestr()
.Exemple :
Dans votre cas, avec une liste de tuples, vous aurez à le faire avec une liste python de compréhension :
Où
results
est la liste de tuples retournés parfetchall
etitem
sont les membres de la n-uplets.le u vous dit que ce sont des chaînes unicode. pour imprimer la liste de tuples dans le format que vous avez spécifié, vous pouvez utiliser:
edit://
Exemple pour KIRAN avec u et , dans le jeu de résultats: