le curseur.fetchall() retourne les caractères supplémentaires à l'aide de MySQldb et python
Quand je suis à l'aide de python pour récupérer les résultats d'une base de données SQL-je obtenir plus de chartes au début et à la fin de la valeur retournée. Par exemple, le code ci-dessous renvoie ((56L,),) au lieu de 56, personne ne sait comment, pour obtenir la valeur... et en ce que le (( ,),) signifie réellement...?
hp= 56
id= 3
database = MySQLdb.connect (host="localhost", user = "root", passwd = "", db = "db")
cursor = database.cursor()
cursor.execute("UPDATE period_option SET points =%s WHERE period_option_id =%s", (hp, id))
cursor.execute("SELECT points FROM period_option WHERE period_option_id =%s", (po_id_home))
results = cursor.fetchall()
print results
MERCI!
OriginalL'auteur DavidJB | 2013-02-13
Vous devez vous connecter pour publier un commentaire.
fetchall()
retourne une liste (vraiment: un n-uplet) de n-uplets. Pensez-y comme une séquence de lignes, chaque ligne est une séquence d'éléments dans les colonnes. Si vous êtes sûr que votre recherche sera de retour que 1 ligne, utilisez fetchone(), qui retourne un tuple, ce qui est plus simple pour décompresser. Ci-dessous sont des exemples de l'extraction de ce que vous voulez de fetchall() et fetchone():OriginalL'auteur Hai Vu
Essayez la méthode suivante, il sera aider à convertir fetchall() de la production dans la liste mieux :
OriginalL'auteur Nagesh HS
Si vous utilisez votre requête pour obtenir une seule valeur, vous pouvez simplement prendre la 0e index.
si le résultat n'a qu'une valeur d'utilisation
results[0]
. Il devrait vous donner la valeur que vous recherchez.Parfois, nous avons un énorme résultat lorsque nous exécutez une requête, dans cette situation, nous devons faire une itération sur les valeurs et l'affecter à la liste.
Lorsque vous exécutez la requête pour les grands articles que vous obtenez quelque chose de sortie lorsque vous utilisez curosr.fetchall()
Utilisation de code ci-dessous pour obtenir les données sous forme de liste
OriginalL'auteur skipper21
56L
est un entier long. "Entiers longs ont un nombre illimité de précision." Ils peuvent être utilisés comme la plaine des entiers.Vous pouvez voir juste le long de la valeur en faisant quelque chose comme:
Exemple de RÉPLICATION de session:
.fetchall()
est défini dans le DB-API reviennent les lignes ", comme une suite de séquences (par exemple, une liste de tuples)". MySQLdb par défaut est d'utiliser un tuple de tuples qui ressemble à ceci(( ,),)
ou encore comme ce( (1,2,3), (4,5,6) )
où les différentes lignes du jeu de résultats, à l'intérieur de tuples-et sont donc toujours de la même longueur.OriginalL'auteur bernie