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 :

lecture de donnees


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut lecture de donnees
    bonjour

    j'ai un souci de relecture de donnees...

    dans une premiere fonction python j'ai points1 qui est de la forme

    [(<Material: FG77>, 6.2422090220385309), (<Material: CS33>, 3.4072766546
    0019), (<Material: BN55>, 5.9058174335952582), (<Material: Al2O3>, 2.33265945668
    08039)]

    et si j'ecris

    len1 = len(points1)

    len1 = 4

    si jessaie de relire points1 dans une autre fonction python mais en transitant par un fichier javascript

    dans la fonction python avec

    points10 = request.GET['points1']

    je recupere une liste de caracteres de longueur 159

    comment retrouver la forme initiale ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,
    Il faut convertir le "string" en objets Python. Mais il faudrait savoir comment vous avez transformé l'objet point1 en "string" car dire "en transitant par un fichier javascript" n'est pas très explicite.
    Montrez le code si vous n'avez pas les mots qu'il faut.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut lecture de donnees
    mafonction python envoie ces donnees a un fichier html

    celui ci les recupere avec

    <p class= "rep400" width="100" style= "display:none;">{{ points1 }}</p>
    <p class= "rep401" width="100" style= "display:none;">{{ points2 }}</p>


    dans le script je recupere points1 avec

    var points10 = $('p.rep400').text();

    si je veux les renvoyer vers une fonction python qui fera un calcul avec ces donnees et renverra vers le même fichier les resultats avec MAP

    j'utilse getjson

    et l'url appelle la fonction python..

    $.getJSON("{% url calcul10 %}", {'poids1': poids1, 'poids2': poids2, 'materiel1': materiel1, 'materiel2': materiel2,
    'points1': points10, 'points2': points20}, function(data) {

    donnees = data['MAP'];

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,
    Citation Envoyé par pat100
    mafonction python envoie ces donnees a un fichier html
    ...
    Et où est le code Python qui fait çà?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut lecture de donnees
    qui fait quoi ?

    le code python qui est appelé par getjson est une fonction de type


    def resout30(request):

    try:
    val1 = request.GET['poids1']
    val2 = request.GET['poids2']
    val3 = request.GET['points1']
    val4 = request.GET['points2']
    val5 = request.GET['materiel1']
    val6 = request.GET['materiel2']

    ......

    # calculs de ponderation

    datas2= {'val_T':valeur_T, 'val_min':.......

    data = simplejson.dumps(datas2)



    return HttpResponse(data, mimetype= 'application/json')

    except Exception, msg:
    print 'erreur resout30', msg
    raise

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut lecture de donnees
    donc personne ne sait comment convertir une liste de string en objets python ??

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par pat100 Voir le message
    donc personne ne sait comment convertir une liste de string en objets python ??
    Tant que vous ne montrez pas comment vous avez converti en string l'objet Python de départ, difficile de vous aider.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut
    je crois que c'est quand j'ecris

    var points10 = $('p.rep400').text();

    peut etre lorsqu'on passe du code python au fichier html

    le fait de recuperer la variable par

    p class= "rep400" width="100" style= "display:none;">{{ points1 }}</p>

    doit convertir en string

    j'y peux rien c'est les templates django...

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par pat100 Voir le message
    j'y peux rien c'est les templates django...
    Si vous laissez le moteur de template Django faire ce qu'il peut pour transformer l'objet point en chaîne de caractère, comment êtes vous sûr que toutes les informations intéressantes se retrouveront dans cette chaîne de caractère?
    Vous pourriez faire par exemple un json.dumps(point1).
    Pour repasser de la chaîne de caractères à l'objet point 1, un json.load(buffer) pourra suffire (à condition d'extraire buffer de la page HTML récupérée).
    L'autre question est de savoir quel est l'intérêt de passer par une page HTML pour échanger l'état d'un "point": vous pourriez faire une requête HTTP qui récupère directement le JSON (et intégrer la requête dans la page HTML si nécessaire).

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

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut
    la logique veut que chaque fonction passe ses resultats de calcul par

    return render_to_response('material/search_results_filt2.html',
    {'lemat':lemat,
    'res1': res1,
    'res2': res2,
    'valT1': valT1,
    'valT2': valT2,

    chaque variable est restituee dans le template avec les delimiteurs {{ }}

    le json.dumps(point1) est donc a faire dans la fonction ou je veux recuperer mes objets python..

    en fait mon programme qui est une base de donnees affiche plusieures pages html

    une premiere page affiche les resultats d'une requete ou l'on cherche certains materiaux correspondant a des criteres

    une deuxieme page html affiche l'adequation de ces materiaux a la requete et les graphes correspondant....

    une autre page affiche les caracteristiques detaillees d'un materiau donné

    etc..

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut lecture de donnees
    en tout cas json.dumps(points1) ne marche pas

    si j'ecris cc = json.dumps(points1)

    print len(cc)

    je ne retourne pas 4 mais 161...

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par pat100 Voir le message
    en tout cas json.dumps(points1) ne marche pas
    si j'ecris cc = json.dumps(points1)
    print len(cc)
    je ne retourne pas 4 mais 161...
    Désolé mais après je ne sais combien d'échanges, je ne sais toujours pas à quoi ressemble point1 d'un point de vue Python. Si vous ne présentez pas votre problème de façon plus compréhensible et un peu plus documentée, impossible d'échanger de façon constructive.

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

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut
    [(<Material: FG77>, 6.2422090220385309), (<Material: CS33>, 3.4072766546
    0019), (<Material: BN55>, 5.9058174335952582), (<Material: Al2O3>, 2.33265945668
    08039)]

    c'est tout ce que je peux dire de points1

    initialement 4 objets

    (<Material: FG77>, 6.2422090220385309)
    (<Material: CS33>, 3.40727665460019)
    (<Material: BN55>, 5.9058174335952582)
    (<Material: Al2O3>, 2.3326594566808039)

    je fais ce que je peux..

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par pat100 Voir le message
    [(<Material: FG77>, 6.2422090220385309), (<Material: CS33>, 3.4072766546
    0019), (<Material: BN55>, 5.9058174335952582), (<Material: Al2O3>, 2.33265945668
    08039)]

    c'est tout ce que je peux dire de points1

    initialement 4 objets

    (<Material: FG77>, 6.2422090220385309)
    (<Material: CS33>, 3.40727665460019)
    (<Material: BN55>, 5.9058174335952582)
    (<Material: Al2O3>, 2.3326594566808039)

    je fais ce que je peux..
    Si vous ne montrez pas le code Python qui construit et affiche cela, points1 pourrait être n'importe quoi.
    Impossible d'y appliquer un json.dumps ou n'importe quoi d'autre.

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

  15. #15
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut
    voila la partie de code sur laquelle est construit points1

    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
    # Recherche des materiaux suivant les criteres de filtrage et calcul des surfaces materiaux par la methode des trapezes
     
            Smin= 0
            Smax= 0
            store = []
            store2 = []
            store3 = []
            Aire = (Tmax - Tmin)* (val_max - val_min)
     
            for i in range(s2):
                if  ((y5[i]>=val_min) and (y5[i]<=val_max)) or ((y6[i]>=val_min) and (y6[i]<=val_max)) and (Tmin <= lemin) and (lemax <= Tmax):
     
                    store.append(y5[i])
                    store2.append(y6[i])
                    store3.append(ss[i])
     
     
                    if (store[0] and store2[0]) >= val_min:
     
                        material100.append(Material.objects.get(name=materiau.name))
     
                        X= X + dX
                        X1=X
                        X2 = X1 + dX
     
     
                        Smin = Smin + 0.5*dX*(P2[0]*X1*X1 + P2[1]*X1 + P2[2] + P2[0]*X2*X2 + P2[1]*X2 + P2[2])
                        Smax = Smax + 0.5*dX*(P3[0]*X1*X1 + P3[1]*X1 + P3[2] + P3[0]*X2*X2 + P3[1]*X2 + P3[2])
     
     
                        Aire_courbe = abs(Smax - Smin)      # surface comprise entre les courbes max et min dans l intervalle Tmin Tmax
                        surface = (Aire_courbe/Aire)*100
     
                        material200.append((Material.objects.get(name=materiau.name), surface))
     
     
     
     
     
                indice+=1
     
     
     
        sizemat = len(material200)
     
     
     
        l1=0
        var30 = []
        var40 = []
        points1=[]
     
        # determination du couple (materiau, surface) elimination des doublons
     
        while l1 <= sizemat - 2:
            if (material200[l1+1][0]!= material200[l1][0]) or (l1 == sizemat - 2):
                var30.append(material200[l1][0])   # materiau
                var40.append(material200[l1][1])   # surface
                points1.append((material200[l1][0],material200[l1][1]))
            l1+=1

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut,
    Après la ligne 60, vous devriez pouvoir regarder ce que donne json.dumps(point1).
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut
    voila ce que rend le code

    <Material: FG77> is not JSON serializable

  18. #18
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    C'est que les objets contenus dans point1 sont plus compliqués que ceux que la bibliothèque JSON sait sérialiser par défaut. A partir de là, impossible de générer une page HTML contenant l'état de l'objet que vous voulez relire dans un autre programme Python.
    Ce n'est pas un problème de "codage": les outils/méthodes utilisés ne sont pas adaptés à ce que vous voulez faire.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  19. #19
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 202
    Par défaut
    merci d'avoir essayé de m'aider

    si je peux pas retrouver l'etat initial de points, je peux essayer de travailler sur les sous chaines avec poinst1.split(",")

  20. #20
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Citation Envoyé par pat100 Voir le message
    si je peux pas retrouver l'etat initial de points, je peux essayer de travailler sur les sous chaines avec poinst1.split(",")
    Vous vous faciliteriez la vie en définissant les informations que vous voulez récupérer de point1 et en faire quelque chose de comestible par JSON.
    Trier ce qui est récupéré en ayant jeté on ne sait quoi dans le HTML, c'est comme le tri des poubelles: il n'y a pas tout ce qu'on veut, parfois on a de bonnes surprises... Et çà sort un peu du cadre de la programmation.

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

Discussions similaires

  1. Probleme de lecture de donnees
    Par cedji dans le forum LabVIEW
    Réponses: 1
    Dernier message: 03/06/2010, 12h09
  2. tableau dynamique lecture des données d'un userform à un autre
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2009, 17h40
  3. Lecture de donnees en UDP
    Par Chanax dans le forum C++
    Réponses: 9
    Dernier message: 01/04/2008, 22h55
  4. [SQLLite] Lecture des données dans un fichier .db
    Par PedroBD dans le forum PHP & Base de données
    Réponses: 31
    Dernier message: 13/11/2006, 17h12
  5. contraint CHECK avec lecture de données sur une autre table ?
    Par mamiberkof dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/05/2006, 09h14

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