Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2874 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Replace dans un tuple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Replace dans un tuple

n°2242460
gizmo15
Posté le 07-11-2014 à 17:17:32  profilanswer
 

Bonjour à vous,
 
Je débute en python ^^
 
et j'aurais besoin de faire un replace dans un tuple.
 
déjà, est-ce possible?
 
si oui, une solution?
 
car j'ai essayé de passer par une variable intermédiaire mais sans succès, pareil, faire le replace comme suit:
 
variable.replace ("id", "id1" ) mais j'ai le message d'erreur suivant:
 

Code :
  1. Traceback (most recent call last):
  2.   File "extract_certif.py", line 37, in <module>
  3.     CERT_MR2.replace('\\n', '\n')
  4. AttributeError: 'tuple' object has no attribute 'replace'


 
j'en conclus donc que ce n'est pas possible.
 
Merci

mood
Publicité
Posté le 07-11-2014 à 17:17:32  profilanswer
 

n°2242465
rage2000
Posté le 07-11-2014 à 19:37:16  profilanswer
 

Un tuple c'est readonly, une fois instancié tu peux plus y toucher.
 
Donc déjà il faut partir sur une liste.
 
Ensuite il existe pas de méthode replace aux lists, par contre c'est pas très compliqué à coder.
 
Exemple:

Code :
  1. def list_replace(init_list, old_value, new_value)
  2.     return [new_value if val == old_value else val for val in init_list]

n°2242478
Profil sup​primé
Posté le 08-11-2014 à 09:26:29  answer
 

As tu essayé de faire :
 

Code :
  1. t = ('1', '2', '3', '4')
  2. ls = list(t)
  3. ls[0]='4'
  4. t = tuple(ls)


 
Mais je suis d'accord avec rage, si tu as besoin de modifier un tuple -> ca ne devrait pas être un tuple


Message édité par Profil supprimé le 08-11-2014 à 10:57:41
n°2242664
gizmo15
Posté le 11-11-2014 à 11:41:58  profilanswer
 

Bonjour,
 
Merci pour vos réponses :jap:
 
en fait, je fais un extract de certificats depuis une base sql. Le certificat extrait je le stock dans une variable, mais quand je veux l'utiliser ou l'afficher et bien il n'interprête pas les \n du coup pas de sauts de lignes, donc mon certificat n'est pas valable.
 
après je ne cherche pas volontairement à le coller dans un tuple, je fais comme ca:
 
var1 = (requête sql)
 
cursor.execute = (var1)
 
var2 = cursor.fetchall()
 
et ca me sort le certificat mais dans un tuple.
 
mauvaise technique pour l'extract?

n°2242676
rage2000
Posté le 11-11-2014 à 12:40:47  profilanswer
 

C'est quoi ton connecteur db ?
 
Au pire si il te retourne un tuple (mais normalement il devrait te retourner un objet propre a lui, compatible avec les list) iil suffit de caster en list
 
var2 = list(cursor.fetchall())

n°2242713
gizmo15
Posté le 11-11-2014 à 22:38:35  profilanswer
 

je fais:
 
import MySQLdb
 
cursor = db.cursor()
 
du coup, si je fais ta technique, ca extract mon tuple dans une liste qui est dans var2?

n°2242714
rage2000
Posté le 11-11-2014 à 23:01:01  profilanswer
 

Effectivement c'est bien un tuple que retourne ce connecteur.
http://mysql-python.sourceforge.ne [...] or-objects
 
Donc tu peux faire ce que j'ai dis.
Par contre attention le fetchall() j'imagine que ca retourne un tuple de tuple.
 

n°2242742
gizmo15
Posté le 12-11-2014 à 10:21:36  profilanswer
 

Finalement, vu que c'est un tuple de tuple je fais juste ca:
 
var3 = var2[0][0].replace('bla', 'blo')  
 
et ca fontionne :D
 
merci à vous :jap:

n°2242743
rage2000
Posté le 12-11-2014 à 10:24:29  profilanswer
 

Ca sous entend que tu n'as qu'une réponse possible a ta requête. Si ta requête renvoie plusieurs row, tu prends que la 1er la.

n°2242760
gizmo15
Posté le 12-11-2014 à 15:09:59  profilanswer
 

oui, et cela me va bien ^^

mood
Publicité
Posté le 12-11-2014 à 15:09:59  profilanswer
 

n°2242787
rage2000
Posté le 12-11-2014 à 18:03:19  profilanswer
 

parfait ;) (du coup tu pourrais faire un fetchone au lieu du fetchall)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Replace dans un tuple

 

Sujets relatifs
probleme sur replace dans une macro[Problème] Jquery .replace
problème VBA avec Find/Replacestr_replace
Impossible de remplacer un espace par un - même avec str_replaceMacro Word 2010 / Autoexec replace
[PHP] Aide pour un preg_replace, caractère de fin ][resolu] Nettoyer du code html pour enlever certaines balise inutiles
preg replacemb_ereg_replace ajouter l'icône PDF
Plus de sujets relatifs à : Replace dans un tuple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR