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 :

Valoriser un YAML à partir des valeurs d'un JSON ou YAML


Sujet :

Python

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Par défaut Valoriser un YAML à partir des valeurs d'un JSON ou YAML
    Bonjour à tous,

    J'essaie de concevoir un script python pour nettoyer des fichiers de conf YAML mais je ne vois pas de solution simple.

    A gauche, un fichier YAML "propre" sans valeur:
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ---
    # domicile
    adresse:
     
    # contact
    numero:
    email:
    ...

    A droite, un fichier YAML/JSON "sale" mais contenant au moins les clés du fichier de gauche, mais avec les bonnes valeurs:
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ---
    cle_inutile1: abcde
    cle_inutile2: fghij
    adresse:
      rue: 15 rue picasso
      cp: 75003
    special: pigeon voyageur
    region: IDF
     
    numero: 010203
    email:
      - no-reply@localhost.com
      - webmaster@localhost.com
    ...


    Et j'aimerais avoir comme résultat de sortie le fichier de gauche alimenté par les valeurs du fichier de droite:
    Code yaml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ---
    # domicile
    adresse:
      rue: 15 rue picasso
      cp: 75003
     
    # contact
    numero: 010203
    email:
      - no-reply@localhost.com
      - webmaster@localhost.com
    ...

    Basculer sur du JSON pour le fichier de gauche faciliterait les choses mais je perdrais les commentaires, ce qui n'est pas une option.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 25
    Par défaut
    Je ne trouve pas de solution simple

    1. nettoyer fichier_gauche.yml pour ne conserver que clé et commentaires
    2. Charger fichier_droit.yml dans un objet JSON Python
    3. Pour chaque clé trouvée dans fichier_gauche.yml, lire la valeur dans l'objet JSON et si elle existe faire un remplacement de ligne avec sed


    C'est hyper sale, mais je ne vois aucune solution pour conserver les commentaires YAML de fichier_gauche.yml

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 720
    Par défaut
    Salut,

    Vous avez des bibliothèques qui savent lire du YAML et en faire un composite de dictionnaires et de listes. Ce qui permet de supprimer les clefs qu'on veut. Après, il faut écrire avec des commentaires (mais il y a certainement des articles sur Internet qui montrent comment le faire).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Pour traiter avec les YAML, moi j'utilise PyYAML/.

    Pour ce qui est des commentaires, peut-être qu'une phase de prétraitement+postraitement serait plus approprié.
    En prétraitement, vous scannez vos fichiers, vous les nettoyez des commentaires, et vous les sauvegarder ailleurs, en prenant soin d'indiquer ce qu'il faut avec pour pouvoir identifier sa place dans le fichier final.
    Et en posttraitement et bien vous réincorporez les commentaires dans le YAML propre.
    Entre 2 il ne vous reste plus qu'à fusionner des YAML/json, chose que vous pouvez aisément faire avec les structures de dictionnaires/listes qui fonctionne très bien avec les json et les YAML.

Discussions similaires

  1. Dérivation à partir des valeurs d'une fonction
    Par haley dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/03/2009, 20h18
  2. Réponses: 1
    Dernier message: 23/05/2007, 11h49
  3. Comment ajouter des champs a partir des valeurs d'un autre champ ?
    Par zerkz dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 06/05/2007, 12h05
  4. Réponses: 1
    Dernier message: 23/01/2006, 18h53

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