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 :

Transformer texte écrit comme dictionnaire en vrai dictionnaire


Sujet :

Python

  1. #1
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 837
    Billets dans le blog
    1
    Par défaut Transformer texte écrit comme dictionnaire en vrai dictionnaire
    Bonjour

    On m'a demandé d'écrire un code transformant un format X en format Y. MAIS de faire en sorte que les règles de transformations soient écrites dans un fichier de config ce qui offrirait donc des règles modifiable par les utilisateurs sans qu'il soit besoin de faire appel au programmeur.

    Mon idée est d'écrire le fichier de config (fichier texte) dans une syntaxe ressemblant aux dictionnaires Python
    Exemple
    Code ascii : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
        "nom" : {
            "balise" : "personne",
            "items" : (
                { "label" : "nom", "value" : "content" },
                { "label" : "prenom", "value" : "None" },
            ),
        }
    }
    Ce qui signifierait grosso-modo <<si je rencontre l'élément "nom" dans le fichier d'origine il me faudra alors créer la balise "personne" contenant un item "nom" avec la valeur du nom d'origine et un item "prenom" vide>>...
    Bon bref c'est pas encore bien finalisé mais c'est à peu près l'idée.

    Et donc ma question avant de partir là-dedans c'est savoir s'il existe un outil tout fait permettant de transformer ce texte écrit sous forme dico en vrai dictionnaire Python...

    Merci à tous de l'ambiance chaleureuse qui règne sur ce fofo avec les aides (parfois pertinentes, parfois moins) mais qui ont le mérite d'exister en quantité...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    t = """{
        "nom" : {
            "balise" : "personne",
            "items" : (
                { "label" : "nom", "value" : "content" },
                { "label" : "prenom", "value" : "None" },
            ),
        }
    }"""
     
    d = eval(t)
     
    print d
    {'nom': {'items': ({'value': 'content', 'label': 'nom'}, {'value': 'None', 'label': 'prenom'}), 'balise': 'personne'}}

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 837
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 837
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    eval !!! Comme en shell. comme tu es trop fantastique!!!

    Un grand merci.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Pour être complet, comme on fait "avaler" à eval des données susceptibles d'être modifiées par l'utilisateur, il faut vérifier que ça ne pose pas de problème de sécurité.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 06/01/2011, 16h04
  2. fichier texte avec comme nom une variable
    Par olobo dans le forum Débuter
    Réponses: 4
    Dernier message: 04/01/2010, 15h55
  3. [RegEx] Transformer texte en adresse email
    Par Catar4x dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2008, 16h02
  4. lire un texte écrit en Unicode d'un fichier PDF
    Par kha_yassine dans le forum Documents
    Réponses: 7
    Dernier message: 20/09/2007, 20h28
  5. Editeur de texte simple comme notepad mais en JAVA
    Par Hamdi Hedhili dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 13/03/2006, 14h32

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