2010-09-14 13 views
-2

Bonjour J'ai un tuple en chaîne que je relance depuis une fonction PostgreSQL> Je veux le convertir en un tuple mais cela me donne une erreur avec la chaîne réelle à l'intérieur du tuple une erreur EOF, le code c'est comme ça.Convertir une chaîne en tuple sur Python

eval('(4125, <html> 
<body> 
Heloo There! 
<body> 
</html>)') 

, ceci est juste un exemple du code HTML car le code réel est trop grand. Je ne veux pas faire un car car beaucoup de caractère pourrait me mettre très lent le système.

Je suis ouvert à toutes les idées sauf le pour ou le pendant.

+0

Pourriez-vous donner un exemple plus clair de ce que vous voulez convertir * à partir de * et de ce que vous voulez convertir * à *? – Karmastan

+0

Quel est le problème avec 'for' ou' while'? –

+0

Vous ne pouvez pas utiliser des listes? – Robus

Répondre

7

Le problème est que la chaîne 'real' n'est pas une chaîne.

'(4125, <html> 
<body> 
Heloo There! 
<body> 
</html>)' 

maintenant supprimer les guillemets simples pour obtenir

(4125, <html> 
<body> 
Heloo There! 
<body> 
</html>) 

retirer maintenant la parenthèse et le premier élément

<html> 
<body> 
Heloo There! 
<body> 
</html> 

Voir, aucune chaîne.

Et honte à vous d'utiliser eval sur une chaîne à partir d'une base de données. Vos parents ne vous ont-ils pas mieux élevé?

+0

Merci pour la réponse et vous avez raison, c'était une mauvaise utilisation d'eval. – hidura

+0

Mais tout ce qui est à l'intérieur c'est une chaîne, c'est '4157', 'Bonjour', 'Fin' 'je ne peux rien utiliser pour le convertir en un tuple. – hidura

+0

data = value.strip ("'") print (tuple (data [1: -1])) C'était ma dernière idée. – hidura

Questions connexes