Lorsque j'utilise Python pour aller chercher des résultats dans une base de données SQL, je reçois des chartes supplémentaires au début et à la fin de la valeur renvoyée. Par exemple, le code ci-dessous renvoie ((56L,),) au lieu de 56, quelqu'un sait-il que l'obtention de la valeur ... et de ce que signifie ((((((((((()
4 Réponses :
Vous pouvez voir juste la valeur longue en faisant quelque chose comme: p> Exemple Session: P> 56L code> est un Entier long . "Les entiers longs ont une précision illimitée." Ils peuvent être utilisés comme des entiers simples.
>>> results = ((56L,),)
>>> for result in results:
... print(result[0])
...
56
fetchall () code> retourne une liste (vraiment: un tuple) de tuples. Pensez-y comme une séquence de lignes, où chaque ligne est une séquence d'articles dans les colonnes. Si vous êtes sûr que votre recherche ne renverra qu'une ligne, utilisez Fetchone (), qui retourne un tuple, ce qui est plus simple à décompresser. Vous trouverez ci-dessous des exemples d'extraction de ce que vous voulez de Fetchall () et de Fetchone ():
# Use fetchall():
((points,),) = cursor.fetchall() # points = 56L
# Or, if you use fetchone():
(points,) = cursor.fetchone() # points = 56L
Essayez la méthode suivante, il vous aidera à convertir la sortie Fetchall () dans une meilleure liste:
row = cursor.fetchall() print row output is : [(1,), (2,), (3,), (4,)] num = list(sum(row, ())) print num output is : [1, 2, 3, 4]
Je l'ai fait pour créer un ensemble: Fechasset = Set (Somme (lignes, ()))
Si vous utilisez votre requête pour obtenir une seule valeur, vous pouvez simplement prendre l'index 0th. Si le résultat n'a qu'une seule valeur utilise les résultats lorsque vous exécutez le Requête pour d'énormes articles Vous obtenez une sortie quelque chose comme ça lorsque vous utilisez curosr.fetchall () p> Utilisez le code suivant pour obtenir le format de la liste des données P> code>. Cela devrait vous donner la valeur que vous recherchez.
Parfois, nous obtenons un résultat énorme lorsque nous exécutons une requête, dans cette situation, nous devrons itérer à travers les valeurs et l'attribuer à la liste. P>
>>> results=(('58',),('50',),('10'),)
>>>[x[0] for x in results] --> code
['58', '50', '1']