Comment obtenir un tableau csv a partir d'un dictionnaire
latitude27
Messages postés
1
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
bonjour guys , je me déméle avec un code python , j'ai un fichier d'entrée que j'ai parsé , pour obtenir une liste de dictionnaire sauf qu'a partir de ceci je dois les stocker dans un tableau d'une maniere particuliere
voici le dico , une partie
mais je souhaite , obtenir une sortie output , dans un fichier csv ,
de ce type de tableau
1QMF guanidiniumARG426 hyd_aliARG426 backboneGLY647 hydaliALA650
2NT7 'guanidinium'ARG254' backboneGLY259 hyd_aliMET258
......
ainsi de suite sous forme de tableau ??,
une ame charitable pourrait m'aider ,,,,???
voici le dico , une partie
data= {'1QMF': [['guanidinium', '', 'ARG', '426', 'A'], ['hyd_ali', 'cd', 'ARG', '426', 'A'], ['bb', 'backbone', 'GLY', '647', 'A'], ['hyd_ali', '', 'ALA', '650', 'A'], ['hyd_ali', 'cbcg2', 'VAL', '662', 'A']], '2NT7': [['guanidinium', '', 'ARG', '254', 'A'], ['bb', 'backbone', 'GLY', '259', 'A'], ['hyd_ali', 'cb', 'MET', '258', 'A']], '2F6Z': [['guanidinium', '', 'ARG', '254', 'A'], ['bb', 'backbone', 'GLY', '259', 'A'], ['hyd_ali', 'cb', 'MET', '258', 'A']], '3U2V': [['guanidinium', '', 'ARG', '77', 'B'], ['bb', 'backbone', 'GLY', '215', 'B'], ['hyd_ali', 'cbcg', 'LEU', '214', 'B']], '3A9E': [['guanidinium', '', 'ARG', '321', 'A'], ['bb', 'backbone', 'ALA', '332', 'A'], ['hyd_ali', '', 'ALA', '276', 'A']], '2ZI6': [['guanidinium', '', 'ARG', '2192', 'B'], ['bb', 'backbone', 'ALA', '2031', 'B'], ['hyd_ali', 'cb', 'ARG', '2188', 'B']], '1X7Z': [['guanidinium', '', 'ARG', '220', 'A'], ['bb', 'backbone', 'GLY', '192', 'A'], ['hyd_ali', '', 'ALA', '195', 'A']]}
for key, val in data.iteritems():
print key
###me retourne les valeurs du dico
for v in data.values() :
print v
### La methode items retourne une liste de tuples de la forme (cle, valeur). La liste contient toutes les donnees stockees dans le dictionnaire.
for keyval in data.items() :
print keyval
mais je souhaite , obtenir une sortie output , dans un fichier csv ,
de ce type de tableau
1QMF guanidiniumARG426 hyd_aliARG426 backboneGLY647 hydaliALA650
2NT7 'guanidinium'ARG254' backboneGLY259 hyd_aliMET258
......
ainsi de suite sous forme de tableau ??,
une ame charitable pourrait m'aider ,,,,???
A voir également:
- Comment obtenir un tableau csv a partir d'un dictionnaire
- Tableau word - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Trier un tableau excel - Guide
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Tableau ascii - Guide
1 réponse
C'est très moche comme approche, je trouve ton dictionnaire bien compliqué...
Il faut travailler en deux étapes
* Analyser ta liste pour avoir les indices 0, 2 et 3 espacé
* Construire ta ligne à l'aide de ta fonction analyser
Voilà ce que je propose
* La classe LengthException pour vérifier que ta liste de listes contient bien 5 listes pour chaque clé de dictionnaire et vérifier que chaque liste contient bien 5 éléments.
En plus de cela, elle t'avertira de l'endroit, liste ou liste de listes et spécifiera qu'elle est celle non fonctionnelle (faisant bugger le programme)
* La fonction parser pour arriver à ce résultat -> guanidinium ARG 426
* La fonction construct pour construire la ligne finale pour chaque clé -> guanidinium ARG 426 hyd_ali ARG 426 bb GLY 647 hyd_ali ALA 650 hyd_ali VAL 662
Voici le code
Bonne continuation...
Il faut travailler en deux étapes
* Analyser ta liste pour avoir les indices 0, 2 et 3 espacé
* Construire ta ligne à l'aide de ta fonction analyser
Voilà ce que je propose
* La classe LengthException pour vérifier que ta liste de listes contient bien 5 listes pour chaque clé de dictionnaire et vérifier que chaque liste contient bien 5 éléments.
En plus de cela, elle t'avertira de l'endroit, liste ou liste de listes et spécifiera qu'elle est celle non fonctionnelle (faisant bugger le programme)
* La fonction parser pour arriver à ce résultat -> guanidinium ARG 426
* La fonction construct pour construire la ligne finale pour chaque clé -> guanidinium ARG 426 hyd_ali ARG 426 bb GLY 647 hyd_ali ALA 650 hyd_ali VAL 662
Voici le code
class LengthException(Exception):
pass
def parse(myList):
LENGTH = 5
if len(myList) != LENGTH:
raise LengthException("bad length of list -> {}".format(repr(myList)))
a, b, c, d, e = myList
return ' '.join([a, c, d])
def constructLine(listOfList):
LENGTH = 5
if len(listOfList) != LENGTH:
raise LengthException("bad length of listOfList -> {}".format(repr(listOfList)))
res = ''
for myList in listOfList:
res += parse(myList)
res += ' '
return res
data= {'1QMF': [['guanidinium', '', 'ARG', '426', 'A'], ['hyd_ali', 'cd', 'ARG', '426', 'A'], ['bb', 'backbone', 'GLY', '647', 'A'], ['hyd_ali', '', 'ALA', '650', 'A'], ['hyd_ali', 'cbcg2', 'VAL', '662', 'A']]}
for key in data:
print(constructLine(data[key]))
Bonne continuation...