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 :

Module pdb : debugger


Sujet :

Python

  1. #1
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut Module pdb : debugger
    Bonjour,

    Ce module est bien pour un pas à pas. Python étant un langage avec des procédures imbriquées et des classes cela créé beaucoup d'objets.

    Comment savoir en temps réel quand une classe utilise des objets ou variables d'une autre ? Un pas à pas qui montrera l'état des variables est ce possible ?

    @+

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

    Citation Envoyé par bm Voir le message
    Comment savoir en temps réel quand une classe utilise des objets ou variables d'une autre ? Un pas à pas qui montrera l'état des variables est ce possible ?
    Techniquement, ce que vous racontez ne veut pas dire grand chose...
    Pourquoi ne pas dire quel problème vous essayez de résoudre?

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

  3. #3
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    C'est de la lecture de data dans un fichier json de la météo de plus de 1000 lignes.
    Une publication de Inria avec des classe et des plot_1d ...
    Je sort facilement des graphes avec pressure, speed, mais cela bloque sur rain (pluie)

    1 / Exploiter un gros json en taille, pas évident avec un éditeur de texte ( lequel est le mieux )

    2 / Le fichier py et json dans un zip : meteo.zip


    @+

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

    Citation Envoyé par bm Voir le message
    Je sort facilement des graphes avec pressure, speed, mais cela bloque sur rain (pluie)
    Qu'entendez vous par "çà bloque" ?

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

  5. #5
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Il me manque un éditeur de lecture du json pour que python accède
    au champ 'rain'

    'speed' , 'pressure' sont accessible et 'rain' ne l'est pas ..

    C'est cette fonction que je ne réussi pas à modifier avec 'rain' :

    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
    def plot_1d (cities):
        """
        visualize temperature in the first city
        for all available dates
        """
        # find the first selected city
        city = None
        for c in cities:
            if 'selected' in c:
                city = c
        if not city:
            print('No city selected for plot_1d')
            return
     
        points_per_day = ('morn',)
        #points_per_day = ('morn', 'day', 'eve', 'night')
        nb_per_day = len(points_per_day)
     
        T = [ measure['rain']
                  for measure in city['data']
             ]
     
        X = range(1,4*(len(T))+1,4)
        print (X)
     
        bar_plot = plot.plot(X, T, linewidth=4)
     
        plot.ylabel(u'mm')
        plot.title(u'Pluie in {}'.format(xpath(city, 'city/name')))
     
        D = [ date_repr(measure['dt']) for measure in city['data'] ]
        Dx = [ 4*n+2 for n in range(len(city['data']))]
        plot.xticks(Dx, D, rotation='vertical')
        #plot.yticks(np.arange(0,81,10))
        #plot.legend( (p1[0], p2[0]), ('Men', 'Women') )
     
        plot.show()
    python met4.py -1 -n paris cities_france.json
    ---------- From cities_france.json
    dealing with 1157 cities
    ---------- Selected 1 cities
    [u'Paris']
    Traceback (most recent call last):
    File "met4.py", line 300, in <module>
    main()
    File "met4.py", line 290, in main
    plot_1d(cities)
    File "met4.py", line 147, in plot_1d
    for measure in city['data']
    KeyError: 'rain'


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

    Citation Envoyé par bm Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        T = [ measure['rain']
                  for measure in city['data']
             ]
    Si la clef "rain" n'est pas définie, normal que çà retourne "KeyError: 'rain'".
    Vous avez 2 solutions:


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

  7. #7
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    File "met4.py", line 147, in plot_1d
    for measure in city['data']
    NameError: global name 'default' is not defined
    Cette erreur dans les deux cas !

    'measure' est un objet ou une variable

    Exécuter python en ligne de commande , ne permet pas de savoir
    ce qui se passe dans l'éditeur python avec un "type (measure)"

    Je ne vois pas comment debugger avec cette ligne de commande : python met4.py -1 -n paris cities_france.json

    C'est 'rain' qui dans le fichier json est utilisé plusieurs fois et que python ne peut pas lier à une clef
    C'est approfondir la lecture de la synthaxe json qu'il faut aborder, mais comment? par quel bout?

    @+

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par bm Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    File "met4.py", line 147, in plot_1d
    for measure in city['data']
    NameError: global name 'default' is not defined
    Cette erreur dans les deux cas !
    Ah ben oui, il faut définir une valeur par défaut et il est plutôt inquiétant que vous ne sachiez que faire lorsque vous rencontrez ce genre d'erreur.

    'measure' est un objet ou une variable

    Exécuter python en ligne de commande , ne permet pas de savoir
    ce qui se passe dans l'éditeur python avec un "type (measure)"
    Ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T = [ measure['rain']
                  for measure in city['data']
             ]
    équivaut à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T = []
    for measure in city['data']:
         T.append(measure['rain'])
    Et comme city['data'] est une liste de dictionnaire, vous savez que measure sera un dictionnaire.
    Pour vous en assurer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    T = []
    for measure in city['data']:
         print(type(measure))
         T.append(measure['rain'])

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

  9. #9
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Comment expliquez vous que 'pressure' et 'speed' ont une clef par défaut sans devoir en créer une ?

    Ceci affiche les pressions et un tracé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     T = [ measure['pressure']
                  for measure in city['data']
             ]
    Ceci affiche les vitesses et un tracé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     T = [ measure['speed']
                  for measure in city['data']
             ]
    print (T)
    ---------- From cities_france.json
    dealing with 1157 cities
    ---------- Selected 1 cities
    [u'Paris']
    [2.13, 5.21, 4.49, 2.96, 1.96, 6.61, 10.53, 14.27, 6.61, 6.76, 5.43, 10.11, 8.5, 3.76, 5.7, 2.56, 2.28]
    A mon avis le problème est ailleurs.
    Je cherche à contourner ce problème qui, à mon avis, n'est pas que dans la syntaxe de python.

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

    Citation Envoyé par bm Voir le message
    Comment expliquez vous que 'pressure' et 'speed' ont une clef par défaut sans devoir en créer une ?
    Dans vos enregistrements "pressure" et "speed" sont toujours définies. "rain" semble l'être que lorsqu'il pleut. Et si vous balayez vos enregistrements avec une boucle "for" en y cherchant, la valeur associée à "rain", il vous faut traiter le cas ou elle n'est pas définie.

    Citation Envoyé par bm Voir le message
    A mon avis le problème est ailleurs.
    Je cherche à contourner ce problème qui, à mon avis, n'est pas que dans la syntaxe de python
    Tout à fait. Vous voulez appliquer à "rain" la mème moulinette que pour "pressure" et "speed" alors que les informations contenues dans le fichier ne le permettent pas. Évidement, çà ne marche pas.... et le problème est, comme souvent, entre la chaise et le clavier.

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

  11. #11
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    humidity est souvent à 0

    {"clouds": 98, "temp": {"min": 280.47, "max": 284.57, "eve": 281.4, "morn": 284.57, "night": 280.47, "day": 284.45}, "rain": 10.98, "humidity": 0, "pressure": 1011.47, "weather": [{"main": "Rain", "id": 501, "icon": " ... etc
    2 champs : "rain": 10.98 , {"main": "Rain",

    Je connais mal le formatage des data json.
    Connaissez vous des liens explicatifs vers les outils ou méthodes de python avec le format de data json ?

    @+

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par bm Voir le message
    2 champs : "rain": 10.98 , {"main": "Rain",
    Dans "rain": 10.98, "rain" est une clé optionnelle dans les dictionnaires de la liste city['data'] alors que dans "main": "Rain", "Rain" est "valeur" de la clé "main" que vous allez parfois trouver dans les données associées à city['data']["weather"].
    Vous avez effectivement "rain" et "Rain" mais ils ne sont pas placés dans les mêmes feuilles de l'arborescence de la structure de données et ils n'ont pas le même sens. Dans un cas, c'est probablement la quantité de flotte qui est tombée, dans l'autre, c'est plutôt la qualification de la journée "pluvieux" (ou nuageux, ensoleillé,...).

    Citation Envoyé par bm Voir le message
    Je connais mal le formatage des data json.
    Connaissez vous des liens explicatifs vers les outils ou méthodes de python avec le format de data json ?
    Une fois que vous avez effectué json.loadX, vous récupérez une structure composite de list et dict Python. La librairie json se débrouille des détails du format des données JSON qui aura une structure composite similaire.

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

  13. #13
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    "rain": 10.98, "humidity": 0, "pressure": 1011.47
    Ces trois data sont pour ici dire adjacentes
    C'est pas dans ce forum que je vais comprendre

    Pouvez-vous rediriger l'intégralité du message dans un forum plus spécialisé 'json' ?

  14. #14
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par bm Voir le message
    Pouvez-vous rediriger l'intégralité du message dans un forum plus spécialisé 'json' ?
    Désolé, je n'en connais pas. JSON est très lié à JavaScript, c'est peut être par là qu'il faut regarder. Ceci dit, vu le titre de votre message, çà serait pas mal de poser votre problème sans parler de Python, pdb,...
    De toutes façons, écrire en JSON l'"array" : {'rain': 10.98, 'pressure': 1011.47, 'humidity': 0} équivaut à écrire en Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> d = { "rain": 10.98, "humidity": 0, "pressure": 1011.47  }
    >>> d
    {'rain': 10.98, 'pressure': 1011.47, 'humidity': 0}
    >>> type(d)
    <class 'dict'>
    donc ce que vous voyez côté Python est un "dict" et c'est avec çà qu'il faut (apprendre à) travailler.

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

  15. #15
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Ce dictionnaire json n'est pas lisible dans tous les cas.
    Ni vous, ni moi ne pouvez donner une explication.

    Pas de solution en l'état

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par bm Voir le message
    Ce dictionnaire json n'est pas lisible dans tous les cas.
    Ni vous, ni moi ne pouvez donner une explication.
    Vous avez des difficultés à comprendre ce que peut être une clé optionnelle, i.e. la possibilité de récupérer des dictionnaires avec "rain" et sans "rain" juste parce que les données sont construites comme çà.
    Lorsque la clé existe, l'accès retourne la valeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> d = { "rain": 10.98, "humidity": 0, "pressure": 1011.47  }
    >>> d['rain']
    10.98
    Lorsqu'elle n'existe pas, çà retourne une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> d = { "humidity": 0, "pressure": 1011.47  }
    >>> d['rain']
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'rain'
    >>>
    que vous pouvez gérer en utilisant .get et une valeur par défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> d.get('rain', 0)
    0
    Citation Envoyé par bm Voir le message
    Pas de solution en l'état
    Le jour où vous comprendrez le problème, vous constaterez que la solution vous a déjà été donnée il y a 2 jours.

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

  17. #17
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Ce n'est pas moi qui formate les data json de ce fichier

    Voir post du 02/11/2015, 23h14 >> meteo.zip

    Alors prenez ce fichier json et le programme py dans cette archive, et retourner le résultat obtenu

    C'est facile de continuer ce post avec 3 champs json, hors du contexte réel et de prétendre que la solution a été donné

    Remettez votre rôle de conseiller en question !

  18. #18
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par bm Voir le message
    Ce n'est pas moi qui formate les data json de ce fichier

    Voir post du 02/11/2015, 23h14 >> meteo.zip

    Alors prenez ce fichier json et le programme py dans cette archive, et retourner le résultat obtenu

    C'est facile de continuer ce post avec 3 champs json, hors du contexte réel et de prétendre que la solution a été donné

    Remettez votre rôle de conseiller en question !
    Mais je l'ai fait avant de poster:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >>> import json
    >>> data = [ json.loads(s) for s in open('cities_france.json').read().splitlines() ]
    >>> for e in data[0]['data']:
    ...     print(e.get('rain'), end = ' ')
    ...
    None None None None 4 11.93 19.26 6.96 None 5.04 7.7 3.43 10.75 2.48 1 None 
    >>>
    Vous pourrez vérifier avec un éditeur que les 'None' correspondent aux enregistrements où 'rain' n'est pas renseigné (et non parce qu'orthographiés "Rain" comme vous le racontiez ici).


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

  19. #19
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    >>> data = [ json.loads(s) for s in open('cities_france.json').read().splitlines() ]
    Dans mon cas, rien que cette ligne, le chargement nécessite trop de mémoire pour 4 Go de ram.
    Console python bloquée.

    De la pluie avec les None à 0 :

    Nom : pluie.jpg
Affichages : 140
Taille : 29,5 Ko



  20. #20
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 718
    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 718
    Par défaut
    Citation Envoyé par bm Voir le message
    Dans mon cas, rien que cette ligne, le chargement nécessite trop de mémoire pour 4 Go de ram.
    Console python bloquée.
    Avec le fichier que vous avez fourni, cela se passe très bien.
    Ce code ne fait qu'en condensé ce que vous faites dans votre fonction "load_cities":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       ...     
          with open(filename) as input:
                return [ json.loads(line) for line in input if line ]
    Et si vous comparez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> with open('cities_france.json') as f:
    ...      data = [ json.loads(line) for line in f ]
    ...
    >>> len(data)
    1157
    à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> data = [ json.loads(s) for s in open('cities_france.json').read().splitlines() ]
    >>> len(data)
    1157
    >>>
    on récupère les mêmes informations dans les 2 cas.

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

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Modules fortran et debugger
    Par Bénarès77 dans le forum Fortran
    Réponses: 3
    Dernier message: 23/11/2009, 17h27
  2. Réponses: 2
    Dernier message: 15/11/2008, 16h58
  3. PerlDoc sur une fonction d'un module
    Par lesouriciergris dans le forum Modules
    Réponses: 2
    Dernier message: 13/03/2003, 20h50
  4. Debugger sous Linux
    Par Shadow Blade dans le forum Choisir un environnement de développement
    Réponses: 6
    Dernier message: 29/11/2002, 18h54
  5. Debugger 16-32 bits
    Par Mat dans le forum Assembleur
    Réponses: 4
    Dernier message: 28/06/2002, 11h34

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