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 :

TypeError : 'float' object is not iterabble


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut TypeError : 'float' object is not iterabble
    Bonjour,
    je viens vers vous pour solliciter votre aide.
    Je cherche à créer un fichier texte à l'aide de tabulate qui a la structure suivante :
    En colonne : les différents champs
    En ligne : les différentes valeurs en fonction du temps

    J'ai l'erreur suivante (TypeError : 'float' object is not iterabble) au niveau de fobj.write à cause de tabulate.
    Pourriez vous m'aider stp à résoudre ce problème ?
    Merci d'avance

    Voici mon code :
    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
                           TEMP_Data_init = []
    			TEMP_Data = []
    			Headers_Temp = []
     
    			for j in range(1,Nb_Raidisseur+1):
    				TEMP_Data = []
    				for k in range(1,len(odb.rootAssembly.instances['TEST'].elementSets["LIAISONS"+str(j)].elements)):
    					TEMP_Data.append(stresses_Liaisons_values[j+k-1])
    					Headers_Temp.append("Stress_Liaisons_Element_"+ str(Elements_ID[j].elements[k].label))
    				TEMP_Data_init.append(TEMP_Data)
     
    			if Deja_Passe_dans_Boucle_Hearder == 0:
    				Headers = []
    				Headers.append("Deplacement TOP RD")
    				Headers.extend("Pression Ext Appliquee")
    				Headers.extend(Headers_Temp)
    				Deja_Passe_dans_Boucle_Hearder=1
     
    			OUTPUT_Data=[Disp_TOP_RD_NODE_Norm, pressure_values]
    			OUTPUT_Data.extend(TEMP_Data_init)
    			fobj.write(tabulate(OUTPUT_Data, headers=Headers, tablefmt="simple", floatfmt=".8f", showindex="always"))

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Si l'erreur est levée par tabulate alors fais un print(OUTPUT_Data) pour voir.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    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 726
    Par défaut
    Salut,

    L'erreur vous dit juste que la variable OUTPUT_Data n'est pas la liste de listes attendue par tabulate... Et il n'y a que vous qui puissiez la visualiser pour voir si elle est bien construite.

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

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut
    Salut,
    voici ce que me donne print(OUTPUT_Data). Cela ne correspond pas à ce que je veux
    [0.0, 0.0, [100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0]]

    J'aurai souhaité quelque chose du style :
    [0.0, 0.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0]

    Mes compétences en Python étant limitées, auriez vous une idée pour modifier mon code ?
    Merci d'avance


    Citation Envoyé par VinsS Voir le message
    Salut,

    Si l'erreur est levée par tabulate alors fais un print(OUTPUT_Data) pour voir.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    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 726
    Par défaut
    Citation Envoyé par Edouard_DKP Voir le message
    J'aurai souhaité quelque chose du style :
    [0.0, 0.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0]
    Est ce que çà ressemble à un tableau (i.e) une liste de listes?
    Sinon, demandez à tabulate d'en faire quelque chose vous aurez la même erreur.

    Mes compétences en Python étant limitées, auriez vous une idée pour modifier mon code ?
    ligne 19, remplacez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OUTPUT_Data=[Disp_TOP_RD_NODE_Norm, pressure_values]
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OUTPUT_Data=[[Disp_TOP_RD_NODE_Norm, pressure_values]]
    Ça devrait tomber en marche.

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

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Chef de Projet
    Inscrit en
    Août 2018
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de Projet

    Informations forums :
    Inscription : Août 2018
    Messages : 6
    Par défaut
    Bonjour,
    malheureusement, la solution proposée ne fonctionne pas. J'obtiens l'export suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [[0.0, 0.0], [100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0]]
    Par rapport au fait que j'utilise les listes, voici ma justification, mais s'il existe une autre solution, meilleure, je suis tout à fait preneur :
    - Au final, je souhaite avoir un fichier texte de la forme suivante :
    Texte 1     Texte2.     Texte3.        Texte4 ....
    0              0.1           0.2             0.3
    1              0.5           0.3             0.7
    ...
    Ceci afin de l'importer sous excel avec une macro.
    Après, réflexion, j'ai l'impression que ma boucle pour remplir ma liste a un problème.
    Bien à vous

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 726
    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 726
    Par défaut
    Salut,

    Citation Envoyé par Edouard_DKP Voir le message
    malheureusement, la solution proposée ne fonctionne pas
    La solution que je vous ai proposé fonctionne (est tombé en marche) mais ne produit pas le résultat que vous attendiez.

    Après si ligne 12 vous ajoutez 2 colonnes dans les headers sans les données et que ligne 19 vous ajoutez une ligne où le nombre de colonnes renseignées n'est pas cohérent avec le reste... çà fait une sortie bizarre.

    Après, réflexion, j'ai l'impression que ma boucle pour remplir ma liste a un problème.
    Vous avez 2 soucis: bien définir ce que vous voulez et comment vous allez récupérer les données correspondantes puis traduire çà en Python. Ce qu'on résume souvent à "savoir (un peu) programmer" (car c'est juste çà).

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

Discussions similaires

  1. TypeError: 'float' object is not callable
    Par simonbonn dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 01/06/2018, 17h25
  2. equa diff : float object is not callable?
    Par souchi6 dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 08/01/2013, 17h29
  3. TypeError: 'int' object is not iterable
    Par lewiss66 dans le forum Général Python
    Réponses: 2
    Dernier message: 18/10/2012, 16h37
  4. TypeError: 'file' object is not callable
    Par MariemEA dans le forum Général Python
    Réponses: 7
    Dernier message: 09/07/2010, 21h57
  5. TypeError: 'int' object is not iterable
    Par manaliac dans le forum Général Python
    Réponses: 15
    Dernier message: 29/06/2010, 11h24

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