TypeError sur une concaténation de chaines [Résolu] [Python] - Python - Programmation
Marsh Posté le 09-07-2004 à 16:20:06
J'ai un peu de mal a piger ce qui se passe, faudrait ptet un peu plus de code
je vois pas du tout ce que tu tentes de faire (""" c'est un string vide suivi d'une apostrophe, essaie "\"" si tu veux ajouter une apostrophes a ton truc), et je ne sais meme pas de quelle maniere tu "affectes" mailp ni si tu fais des modifs préalables
donne plus de code stp
Marsh Posté le 09-07-2004 à 16:24:41
Hum, effectviement, c'est pas super clair
Bon, j'ai ça dans ma méthode :
Code :
|
Bon, l'indentation chie, mais j'arrive pas à la mettre correctement, dans mon fichier c'est bon.
Si je suis sur que mailp est une chaine ? Ben, je l'affecte directement avec une chaine de caractère, je fais ma requête SQL, et je reaffecte mailp juste après, ya pas de raisons que ça change ... C'est une variable locale, je m'en sers juste dans cette méthode.
Marsh Posté le 09-07-2004 à 16:28:15
c'est pas normal...
tu peux toujours faire mailp = "%s%s" % (mailp, """blabla""" ) mais t'as une erreur qui traine quelquepart, forcément.
Marsh Posté le 09-07-2004 à 16:36:25
lorill a écrit : c'est pas normal... |
Ca marche pas non plus J'ai la même erreur ...
Par contre, mon """blabla""" est sur plusieurs lignes (c'est pour ça que je me sers de """ d'ailleurs).
Si je fais comme toi, c'est à dire mailp = "%s%s" % (mailp, """blabla""" ), ou même mailp = mailp + """blabla""", là ça marche, mais j'ai la même erreur plus bas (mais ça c'est ce qui arrive quand on traite mal le résultat d'une reque SQL )
Marsh Posté le 09-07-2004 à 16:38:42
multani-1 a écrit : là ça marche, mais j'ai la même erreur plus bas (mais ça c'est ce qui arrive quand on traite mal le résultat d'une reque SQL ) |
j'ai pas compris
Marsh Posté le 09-07-2004 à 16:41:18
lorill a écrit : |
Comme je t'ai dis (mailp = mailp + """blabla""" ), ça marche, mais je retrouve cette erreur sur les lignes de codes en dessous, où je traite ma requête SQL.
Mais j'ai fais n'importe quoi sur ce traitement SQL, c'ets normal que ça chiait.
Maintenant que c'est corrigé, le script marche, mais ça enregistre que "blabla" dans ma variable. Si je remets mon texte entre les """, ça refais l'erreur
Marsh Posté le 09-07-2004 à 16:41:22
et en remplacant les """ """ par
""\
""\
"" ?
et tu devrais verifier le type de ton mailp avant tes affectations -_-
Marsh Posté le 09-07-2004 à 16:49:36
Masklinn a écrit : et en remplacant les """ """ par |
J'ai essayé totu à l'heure déjà (cf. 1ère manière du 1er post ), sans succès
Masklinn a écrit : et tu devrais verifier le type de ton mailp avant tes affectations -_- |
<type 'str'>
Faut bien faire print mailp.__class__ ?
Marsh Posté le 09-07-2004 à 16:53:04
Bon, c'est bon, j'ai trouvé d'où ça venait :
problème du résultat de ma requête SQL que je traitais mal, et que je concatenais dans mailp ... sauf que la ligne était trop grande, et que cette concaténation était en dehors de la fenêtre
Désolé du dérangement
Marsh Posté le 09-07-2004 à 16:10:36
Salut,
j'ai un script qui fait des concaténations de chaines, pour stocker un grand texte (un mail pour être plus précis).
La variable qui contient ce texte, s'appelle mailp, je l'affecte une première fois au début de la méthode qui génère le texte.
Ensuite, j'essaie de lui affecter la suite du texte que je veux envoyer, mais j'ai cette erreur là :
Traceback (most recent call last):
File "./xml2db.py", line 65, in ?
mail.send()
File "./alerteEmail.py", line 58, in send
msg = MIMEText(m.getText())
File "./genEmail.py", line 29, in getText
return self.getAlerte()
File "./genEmail.py", line 138, in getAlerte
mailp = mailp + """
TypeError: unsubscriptable object
J'ai essayé d'autres manière de faire ça :
- mailp = mailp + "\n\ [...] " au lieu d'utiliser les """
- mailp2 = mailp + """ [...]
- mailp = """ [...]
- mailp2 = """ [...]
Bref, plusieurs moyens, mais je vois pas du tout d'où ça vient
Si je fais un print mailp avant de faire cette affectation, j'ai bien mon texte qui s'affiche, donc le debut du script marche bien.
Le pire, c'est que ça marche quand je fais des essais directement dans une console Python
Merci de m'aider
Message édité par multani-1 le 09-07-2004 à 16:53:18