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 :

Stocker un dictionnaire dans une base de donnée sql lite


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut Stocker un dictionnaire dans une base de donnée sql lite
    Bonsoir cher amis,

    Etant novice dans le domaine des SGBD, j'aurais besoin de vos eclaircissements. Après avoir coder un programme qui me permet de récolter des infos spécifiques et de les mettres en forment dans un dictionnaire (voir ci-dessous) j'aimerais savoir s'il est possible de stocker ce dictionnaire tel quel dans une base de donnée (sql lite) ou si je dois faire autrement? Merci pour vos commentaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dico = {'projet': u'projet1', 'campagne': [{'iteration': [{'num': u'153', 'nom': u'beta1', 'emploi': [{'nom': 'emploi1', 'propriété': [{'étape': u'etape1', 'motif': u'renvoi'}]}

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Difficile de t'aiguiller dans la mesure où tu ne dis pas comment tu souhaites exploiter tes données par la suite (c'est la question que tu dois tout d'abord te poser). Sinon bien sur tu peux stocker n'importe quoi n'importe comment dans n'importe quelle base de données.
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Tu peux bien sur enregistrer ce genre de données dans une base de données
    mais il faudrait que celle-ci soient claires pour toi.

    En clarifiant comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dico = {'projet': u'projet1', 
            'campagne': [{'iteration': [{'num': u'153', 
                                         'nom': u'beta1', 
                                         'emploi': [{'nom': 'emploi1', 
                                                     'propriété': [{'étape': u'etape1', 
                                                                    'motif': u'renvoi'}]}
    Il manque des crochets et parenthèses fermant, est-ce incomplet ou volontaire (donc beugué) ?
    Tu sembles vouloir enfermer les dictionnaire dans des listes sans raison, est-ce aussi volontaire ?

  4. #4
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    Je te propose d'utiliser le module shelve il est pratique pour des persistances, c'est un peu pareil à stocker des données dans une base ( shelve utilise un fichier qu'il cree lui meme)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import shelve
     
     
    dico = {'projet': u'projet1', 
            'campagne': [{'iteration': [{'num': u'153', 
                                         'nom': u'beta1', 
                                         'emploi': [{'nom': 'emploi1', 
                                                     'propriété': [{'étape': u'etape1', 
                                                                    'motif': u'renvoi'}]}
     
    db = shelve.open('maBdPerso')
    db['dico'] = dico
    db.close()
    Pour récuperer tu feras simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import shelve
     
    db = shelve.open('maBdPerso')
    monDicoStocke = db['dico']
    db.close()
    tu peux utiliser toutes les donnée stockées tant que le fichier existe. Je pense que c'est plus pratique dans ton cas. shelve fonctionne lui meme comme un dictionnaire, donc pour avoir la liste de toutes les entrées (clés ) du fichier tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import shelve
    db = shelve.open('maBdPerso')
    listeDesCles = db.keys()  # Mais attention c'est un peu lent si ton fichier est volumineux
    La Doc sera plus complete que mes explications.
    Toute chose dépend de la valeur qu'on lui attribue !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par VinsS Voir le message
    Salut,

    Tu peux bien sur enregistrer ce genre de données dans une base de données
    mais il faudrait que celle-ci soient claires pour toi.

    En clarifiant comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dico = {'projet': u'projet1', 
            'campagne': [{'iteration': [{'num': u'153', 
                                         'nom': u'beta1', 
                                         'emploi': [{'nom': 'emploi1', 
                                                     'propriété': [{'étape': u'etape1', 
                                                                    'motif': u'renvoi'}]}
    Il manque des crochets et parenthèses fermant, est-ce incomplet ou volontaire (donc beugué) ?
    Tu sembles vouloir enfermer les dictionnaire dans des listes sans raison, est-ce aussi volontaire ?
    Plusieurs choses:
    1/ J'ai voulu simplifier le dictionnaire car trop volumineux mais qui ressemble plus à sa:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    {
        "projet": "projet1",
        "identifiant": "X",
        "campagne": [
        	{
    	     "nom": "campagne1",
        	     "identifiant": "XX",
        	     "iteration": [
        		{
        			"nom": "beta1",
        			"identifiant": "XXX",
        			"emploi": [
        				{
    					"nom": "emploi1",
        					"propriete": [
            				         {
            						"etape": "etape1",
                				                "motif": "renvoi"
            					}
        					]
     
    				},
    				{
        					"nom": "emploi2",
        					"propriete": [
            					{
                				               "etape": "etape2",
                				               "motif": "admis"
            					}
        					]
    				}
    		     ]
                   }
     	   ]
    	}
         ]
    }
    Tu sembles vouloir enfermer les dictionnaire dans des listes sans raison, est-ce aussi volontaire?
    Comme j'ai une hiérarchie de données qui comprennent d'autres données je n'ai trouvé que cette façon de faire pour stocker de façon ordonnée mes élément.

    2/ Je préfererai utiliser une base de donnée de type sql lite de façon à pouvoir réutiliser les données dans le temps et de permettre à ce que ce soit plus exploitable pour d'autres personnes qui ne pige rien au python. Sachant que j'ai a l'esprit de mettre en place par la suite un affichage de ces données sur un serveur web pourquoi pas.

    3/ Mais revenant à mon prb qui est comment je peux stocker ce dictionnaire en base de donnée sachant que je suis novice dans ce domaine, ou alors le dictionnaire est peut être pas adéquat dans cette situation? Juste pour savoir si je m'y prend déja mal dès le départ

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 553
    Points : 2 740
    Points
    2 740
    Par défaut
    Salut,

    ton dictionnaire à l'air d'être une sorte d'arborescence.
    de mon point ede vue, un SGBD relationnel c'est pas l'idéal pour sauvegarder une arborescence, c'est possible mais c'est pas le plus naturel.

    le XML est une bonne solution pour stocker une arborescence, en plus c'est facile à mettre en place et c'est facilement lisible pour quelqu'un qui n'y connait rien en Python.

  7. #7
    Membre expérimenté Avatar de plxpy
    Homme Profil pro
    Ingénieur géographe
    Inscrit en
    Janvier 2009
    Messages
    792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur géographe
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2009
    Messages : 792
    Points : 1 481
    Points
    1 481
    Par défaut
    Bonjour,

    Citation Envoyé par Tryph Voir le message
    Salut,

    ton dictionnaire à l'air d'être une sorte d'arborescence.
    de mon point ede vue, un SGBD relationnel c'est pas l'idéal pour sauvegarder une arborescence, c'est possible mais c'est pas le plus naturel.

    le XML est une bonne solution pour stocker une arborescence, en plus c'est facile à mettre en place et c'est facilement lisible pour quelqu'un qui n'y connait rien en Python.

    Et pour peu que :

    • tu modifies légèrement ton dictionnaire (une seule clé pour le dictionnaire de haut niveau, correpondant à la racine du XML)
    • tu utilises xmltodict


    ça se fait tout seul :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    >>> import xmltodict
    >>> dico = {
    ...     "projet": "projet1",
    ...     "identifiant": "X",
    ...     "campagne": [
    ...             {
    ...          "nom": "campagne1",
    ...                  "identifiant": "XX",
    ...                  "iteration": [
    ...                     {
    ...                             "nom": "beta1",
    ...                             "identifiant": "XXX",
    ...                             "emploi": [
    ...                                     {
    ...                                     "nom": "emploi1",
    ...                                             "propriete": [
    ...                                              {
    ...                                                     "etape": "etape1",
    ...                                                             "motif": "renvoi"
    ...                                             }
    ...                                             ]
    ...  
    ...                             },
    ...                             {
    ...                                             "nom": "emploi2",
    ...                                             "propriete": [
    ...                                             {
    ...                                                            "etape": "etape2",
    ...                                                            "motif": "admis"
    ...                                             }
    ...                                             ]
    ...                             }
    ...                  ]
    ...                }
    ...        ]
    ...     }
    ...      ]
    ... }
    ...
    >>> racine = { 'racine': dico }
    >>> with open('result.xml', 'w') as f:
    ...     print >> f, xmltodict.unparse(racine, pretty=True)
    ... 
    >>> 
    >>> _ = os.system('more result.xml')
    <?xml version="1.0" encoding="utf-8"?>
    <racine>
            <projet>projet1</projet>
            <campagne>
                    <nom>campagne1</nom>
                    <identifiant>XX</identifiant>
                    <iteration>
                            <emploi>
                                    <nom>emploi1</nom>
                                    <propriete>
                                            <etape>etape1</etape>
                                            <motif>renvoi</motif>
                                    </propriete>
                            </emploi>
                            <emploi>
                                    <nom>emploi2</nom>
                                    <propriete>
                                            <etape>etape2</etape>
                                            <motif>admis</motif>
                                    </propriete>
                            </emploi>
                            <nom>beta1</nom>
                            <identifiant>XXX</identifiant>
                    </iteration>
            </campagne>
            <identifiant>X</identifiant>
    </racine>
    >>>
    "La simplicité ne précède pas la complexité, elle la suit." - Alan J. Perlis
    DVP ? Pensez aux cours et tutos, ainsi qu'à la FAQ !

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par kali38 Voir le message
    3/ Mais revenant à mon prb qui est comment je peux stocker ce dictionnaire en base de donnée sachant que je suis novice dans ce domaine, ou alors le dictionnaire est peut être pas adéquat dans cette situation? Juste pour savoir si je m'y prend déja mal dès le départ
    Votre truc n'est pas un dictionnaire mais une hiérarchie composite.
    Pour la stocker, il faut la sérialiser (vous avez les modules JSON ou shelve qui font cela très bien) ce qui consiste à transformer la structure en une chaine de caractères (qu'on saura interpréter pour reconstruire la structure ensuite) et à partir du moment ou c'est devenu "chaine de caractères", vous pouvez la stocker dans un fichier, dans une colonne d'une des tables d'un SGDB,....

    Ceci dit, on peut aussi dire que c'est une hiérarchie entre différentes relations/tables et en stocker les différents éléments dans plusieurs tables d'un SGDB.

    La vraie question est de savoir quels sont les traitements que vous allez faire et si vous allez ajouter supprimer des informations dans la hiérarchie. Auquel cas, il faut d'abord concevoir les relations de votre SGDB et vous faire aider dans la rubrique adhoc comment on fait cela.

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

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    La vraie question est de savoir quels sont les traitements que vous allez faire et si vous allez ajouter supprimer des informations dans la hiérarchie. Auquel cas, il faut d'abord concevoir les relations de votre SGDB et vous faire aider dans la rubrique adhoc comment on fait cela.
    Le prb est que le dictionnaire va être amené à évoluer dans le temps? Dans ce cas un fichier xml est il toujours cohérent, j'avoue que je m'y perd....

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut
    Sachant qu'au final mon but est de mettre en place un affichage sur un site web de mes données

  11. #11
    Membre averti Avatar de cervo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 220
    Points : 388
    Points
    388
    Par défaut

    je pense que le module shelve te conviendrait parfaitement !
    Toute chose dépend de la valeur qu'on lui attribue !

  12. #12
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 553
    Points : 2 740
    Points
    2 740
    Par défaut
    Salut,

    je crois que la première chose à faire c'est de définir clairement ton besoin.

    Citation Envoyé par kali38 Voir le message
    Le prb est que le dictionnaire va être amené à évoluer dans le temps? Dans ce cas un fichier xml est il toujours cohérent, j'avoue que je m'y perd....
    l'évolution potentielle du dictionnaire, tu es le seul à le savoir. on peut pas la décider pour toi. est-ce que tu prévois, à l'avenir, d'ajouter/supprimer des nouveaux type de données?


    pour le reste si je récapitule ce que j'ai compris de la demande jusque maintenant, il faut:
    1. enregistrer une structure de données hiérachisées similaire à une arborescence
    2. les données enregistrées doivent être réutilisables pour affichage sur un site
    3. les données enregistrées doivent pouvoir être lues (manipulées?) facilement par quelqu'un sans connaissance Python


    le mieux serait déjà que tu confirmes ou infirmes ces postulats et que tu nous dises si tu as d'autres exigences. une fois cela défini, le choix devrait se faire beaucoup plus facilement.

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut
    Mon besoin est simple et clair:

    1/ Mon dictionnaire va évoluer dans le temps, de nouveaux types de données vont s'ajouter puisque les données que je récupère proviennent d'un gestionnaire de scénario de test.
    2/ Je ne compte pas, à priori, enlever des données
    3/ J'ai besoin d'enregistrer cette structure de données (est-ce que le dictionnaire est simple à stocker ou y'a t'il un moyen plus simple de gérer mes données: par ex un tuple?)
    4/ Les données enregistrées doivent être réutilisables pour affichage sur un site
    5/ Les données doivent être mise à jour à chaque fois que de nouvelles données s'ajoutent

  14. #14
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    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 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Si la structure des données doit évoluer souvent, le stockage dans une base de données ne sera pas pratique. Et si le stockage doit être compatible avec un affichage dans un site web, ce ne sera pas facile avec un outil trop spécifique Python comme shelves.

    A mon avis, une méthode de stockage qui soit en même temps souple à modifier et compatible avec l'affichage dans un site web, c'est dans un fichier XML. Mais il faudra créer les fonctions de stockage/chargement en Python, et d'extraction pour affichage en php.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  15. #15
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    553
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2010
    Messages : 553
    Points : 2 740
    Points
    2 740
    Par défaut
    je suis d'accord avec tout ce qu'a écrit Tyrtamos et je vois même quelques autres avantages à utiliser du XML:
    - c'est utilisable par n'importe quel techno
    - c'est facilement lisible par un humain sans autre outils qu'un bête éditeur de texte

    les inconveients de sqlite:
    - un humain a besoin d'un outil spécifique pour interagir avec le fichier de BDD
    - à chaque changement de structure de ton dictionnaire, tu vas devoir modifier la structure de ta BDD (à moins de faire un truc très flexible et générique, autant dire faire une usine à gaz alors qu'on peut faire simple)

    les inconvénients de shelve (que je ne connais pas alors je vais peut être dire une connerie):
    - produit un fichier binaire impossible à lire pour un humain
    - dépendant de Python

    après c'est toi (kali38) qui a le dernier mot

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par kali38 Voir le message
    Mon besoin est simple et clair:
    hu?!?

    Citation Envoyé par kali38 Voir le message
    1/ Mon dictionnaire va évoluer dans le temps, de nouveaux types de données vont s'ajouter puisque les données que je récupère proviennent d'un gestionnaire de scénario de test.
    Déjà ça serait bien de préciser comment vous avez construit ce dictionnaire à partir des données récupérées du gestionnaire de tests.
    Ajouter des données et ajouter de nouveaux types de données sont deux choses différentes: à quoi cela correspond dans l'exemple que vous avez donné?

    Citation Envoyé par kali38 Voir le message
    2/ Je ne compte pas, à priori, enlever des données
    Mais vous ne voulez peut être pas les avoir en double non plus...
    Puis vous avez des questions de quantité, y aura-t-il quelques lignes, plusieurs milliers?

    Citation Envoyé par kali38 Voir le message
    3/ J'ai besoin d'enregistrer cette structure de données (est-ce que le dictionnaire est simple à stocker ou y'a t'il un moyen plus simple de gérer mes données: par ex un tuple?)
    4/ Les données enregistrées doivent être réutilisables pour affichage sur un site
    Vous n'allez peut être pas afficher toutes les données mais peut être laisser l'utilisateur le choix d'afficher les sous ensembles qui l'intéresse... surtout si à terme vous avez des milliers d'information à trier suivant des critères à définir.

    En résumé, c'est pas très clair.

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

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut
    Bonjour, je cherche une manière de stocker ce dictionnaire dans ma base de donnée sqlite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    {
        "projet": "projet1",
        "identifiant": "X",
        "campagne": [
        	{
    	     "nom": "campagne1",
        	     "identifiant": "XX",
        	     "iteration": [
        		{
        			"nom": "beta1",
        			"identifiant": "XXX",
        			"emploi": [
        				{
    					"nom": "emploi1",
        					"propriete": [
            				         {
            						"etape": "etape1",
                				                "motif": "renvoi"
            					}
        					]
     
    				},
    				{
        					"nom": "emploi2",
        					"propriete": [
            					{
                				               "etape": "etape2",
                				               "motif": "admis"
            					}
        					]
    				}
    		     ]
                   }
     	   ]
    	}
         ]
    }
     
    Avez vous une idée?

  18. #18
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Et dans les seize posts qui précèdent, on parle de quoi ?

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 146
    Points : 32
    Points
    32
    Par défaut
    oui je sais désolé je suis novice dans la programmation ce que je veut savoir c'est comment accéder à un élément dans un dictionnaire assez volumineux comme celui indiqué plus haut, par exemple j'ai codé ca, mais c'est vraiment pas optimisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for elem1 in dico['tcampagne']:
       print elem1['nom']
       for elem2 in elem1['iteration']:
           print elem2['nom']
           for elem3 in elem2['emploi']:
              print elem3['nom']

  20. #20
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par kali38 Voir le message
    oui je sais désolé je suis novice dans la programmation ce que je veut savoir c'est comment accéder à un élément dans un dictionnaire assez volumineux comme celui indiqué plus haut, par exemple j'ai codé ca, mais c'est vraiment pas optimisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for elem1 in dico['tcampagne']:
       print elem1['nom']
       for elem2 in elem1['iteration']:
           print elem2['nom']
           for elem3 in elem2['emploi']:
              print elem3['nom']
    Autant ouvrir un nouveau sujet mais la réponse risque d'être la même: définir votre modèle de données avec classes et des relations.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/01/2012, 18h08
  2. stocker des fichiers dans une base de donnée MYSQL
    Par Invité(e) dans le forum MySQL
    Réponses: 5
    Dernier message: 03/12/2009, 13h10
  3. Stocker un tableau dans une base de données
    Par rambc dans le forum Général Python
    Réponses: 7
    Dernier message: 23/12/2008, 21h16
  4. Stocker les sessions dans une base de données
    Par mic79 dans le forum Langage
    Réponses: 7
    Dernier message: 06/04/2006, 21h57
  5. Comment stocker des images dans une base de données ?
    Par [Silk] dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2005, 11h29

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