IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Cherche une méthode ou fonction permettant de reformater un string


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut Cherche une méthode ou fonction permettant de reformater un string
    Hello,

    J'espère qu'il n'y a pas déjà un thread à ce sujet

    En fait, je dois écrire un programme qui se connecte à un webservice et enregistre dans MySQL les valeurs retournées par l'API. Mon principal problème pour l'instant est que je ne sais pas comment reformater et parcourir le "string" (normalement du XML) que l'API me renvoie.

    '<?xml version="1.0" encoding="utf-8"?>\n<sstats>\n\n<ss> <c_name>Premier Test</c_name> <c_id>140</c_id> <primary_group>CCC_14330906</primary_group> <is>0</is> <cs>2</cs> <lds>0</lds> <sr>0</sr> <ns></ns> <c>0</c> <epc>0</epc></ss>\n\n</sstats>\n\n'

    Est ce que je dois reformater le "string" en remplaçant les "\n" par des vrais retour-chariots ou bien c'est possible de le parcourir en le laissant comme ca.

    Si vous avez des idées, bout de codes, liens ou recommendations, je suis preneur.

    Merci beaucoup

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Bienvenue wouzou,

    - C'est quoi des «vrais retour-chariots» ?

    - Bien sûr que c'est possible de parcourir la chaine en la laissant comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ch = '<?xml version="1.0" encoding="utf-8"?>\n<sstats>\n\n<ss> <c_name>Premier Test</c_name> <c_id>140</c_id> <primary_group>CCC_14330906</primary_group> <is>0</is> <cs>2</cs> <lds>0</lds> <sr>0</sr> <ns></ns> <c>0</c> <epc>0</epc></ss>\n\n</sstats>\n\n'
    for caractere in ch:
        pass
    Ce programme ne produit rien mais il fait bien une petite promenade le long de la chaine.

    Ceci pour dire que tant que ce qui doit être fait et obtenu sur la chaine n'est pas défini, la question de savoir si on travaille sur la chaine elle-même ou sur un autre objet issu de la chaine n'a pas de sens.
    À mon sens.


    - Mais pour commencer à répondre à ta question:

    Tu peux obtenir une liste à partir de ta chaine,
    soit par ch.splitlines() qui enlève les '\n'
    soit par ch.splitlines(True) qui les conserve.

    Mais pour ma part, je suis peu à peu venu à l'idée que quand on peut traiter une chaine directement en tant que chaine, sans passer par une transformation en liste ou autre chose, c'est informatiquement plus naturel et plus rapide.
    On peut le faire
    soit exclusivement avec des méthodes de chaine,
    soit en recourant aux regular expressions qui ne sont pas toujours moins rapides que les premières,
    soit en mélangeant les deux.
    Avec Python, de toutes façons il y a toujours une solution, et en plus c'est fastoche !

    Dis nous donc ce que tu veux faire à partir de ta chaine, et nous pourrons te fournir de plus amples indications. Pour ma part, je chercherai en premier des solutions basées sur un parcours de la chaine telle quelle.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Par défaut
    Merci pour ta réponse eyquem.

    En fait, j'aimerais utiliser un parser XML et parcourir le résultat en faisant :

    Tant que Noeud {
    Lire prochain noeud
    Générer une requête SQL de type INSERT
    Exécuter la requête
    }

    Ca serait le plus pratique pour moi mais le python est tout nouveau pour moi et donc je ne sais pas quelle librairie utiliser et comment le faire.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Je n'utilise pas de parsers, c'est trop compliqué pour moi. Je fais mes propres bidouilles.
    Ce qui fait que je ne sais pas comment se présente un résultat de parser XML. C'est une liste ? Ça comporte quelles données ?

    La deuxième chose c'est que je ne comprends pas bien
    Tant que Noeud {
    Lire prochain noeud
    Générer une requête SQL de type INSERT
    Exécuter la requête
    }
    Ça ressemble à du C ou du C++, bien que je ne connaisse rien à ces langages.
    Qu'appelles-tu Noeud ? Ça a à voir avec les fins de lignes ?

    J'arriverais mieux à te répondre si je savais ce que tu veux obtenir à partir de ta chaine.
    Tu veux en extraire les données nécessaires à la constitution de ta requête INSERT ?
    Sinon il faudra que des renforts prennent le relais.

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Par défaut
    Si tu veux lire du XML, tu peux utiliser ElementTree qui te permettra de transformer ton code XML en un arbre.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Voilà le renfort. Ouf

Discussions similaires

  1. cherche une méthode
    Par philguio dans le forum Windows Forms
    Réponses: 1
    Dernier message: 08/03/2009, 19h33
  2. [Wiki] Cherche une classe pour fonctions de base d'un wiki
    Par Delphy113 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 11/06/2008, 18h06
  3. je cherche une méthode
    Par ulysse031 dans le forum Langage
    Réponses: 30
    Dernier message: 22/02/2007, 11h44
  4. je cherche une méthode
    Par ulysse031 dans le forum Langage
    Réponses: 10
    Dernier message: 05/02/2007, 14h48
  5. Je cherche une méthode de collision
    Par ptitbonum dans le forum Physique
    Réponses: 5
    Dernier message: 21/09/2004, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo