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 :

Besoin d'aide pour écrire les résultats d'une requête dans un csv [Python 3.X]


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    ingénieur supply chain
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur supply chain
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Besoin d'aide pour écrire les résultats d'une requête dans un csv
    Bonjour à tous,

    Je viens de commencer un petit programme permettant de faire des requetes sur l'API Distance Matrix de Google via une liste d'adresse contenu dans un csv.

    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
    # importing googlemaps module 
    import googlemaps 
    import csv
    import json
     
    gmaps = googlemaps.Client(key='ma clé')
     
    destinations = ['4 place du Champ de Mars Cellule B27, 16000 Angoulême']
     
    with open('1601 angouleme.csv', "r", newline='') as f:
        reader = csv.reader(f)
        for row in reader:
            origins = row
     
            my_dist_driving = gmaps.distance_matrix(origins,destinations,'driving')
            my_dist_transit = gmaps.distance_matrix(origins,destinations,'transit')
            my_dist_walking = gmaps.distance_matrix(origins,destinations,'walking')
     
            print(my_dist_driving)
            print(my_dist_transit)
            print(my_dist_walking)
    Le json retourné ressemble à cela :
    {'destination_addresses': ['4 Place du Champ de Mars, 16000 Angoulême, France'], 'origin_addresses': ['2 Allée des Combes, 16600 Magnac-sur-Touvre, France'], 'rows': [{'elements': [{'distance': {'text': '8.8 km', 'value': 8818}, 'duration': {'text': '15 mins', 'value': 929}, 'status': 'OK'}]}], 'status': 'OK'}

    Ce programme fonctionne très bien et je souhaiterai maintenant écrire les résultats de la requète dans un fichier csv ou txt ou xml peu importe, de la façon suivante :
    colonne 1 = 'origin_adresse'
    colonne 2 = 'destination_adress'
    colonne 3 = 'distance'
    colonne 4 = 'duration'

    J'ai essayé beaucoup de choses mais rien ne fonctionne et je commence à désespérer de trouver une solution.
    Est-ce que quelqu'un peut m'aider svp ?

  2. #2
    Membre émérite

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Points : 2 328
    Points
    2 328
    Par défaut
    Bonjour

    Commencez donc par écrire un script démarrant par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    data = {'destination_addresses': ['4 Place du Champ de Mars, 16000 Angoulême, France'], 'origin_addresses': ['2 Allée des Combes, 16600 Magnac-sur-Touvre, France'], 'rows': [{'elements': [{'distance': {'text': '8.8 km', 'value': 8818}, 'duration': {'text': '15 mins', 'value': 929}, 'status': 'OK'}]}], 'status': 'OK'}
    et retournant déjà juste à l'écran les infos que vous voulez, juste en utilisant print.

    Une fois que ca marchera vous verrez comment :
    - écrire dans un fichier plutot qu'à l'écran
    - connecter cela avec le premier programme

    mais chaque chose en son temps ...

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par taupivin Voir le message
    Ce programme fonctionne très bien et je souhaiterai maintenant écrire les résultats de la requète dans un fichier csv ou txt ou xml peu importe
    Non pas "peu importe". Chaque type de fichier possède une architecture bien précise qui donnera des résultats excellents dans un certain contexte et pitoyables dans un autre.
    Par exemple le XML c'est excellent pour organiser des données hiérarchisées mais ça bouffe de la place. Ca peut aussi gérer des données 2D (n lignes avec chaque ligne contenant m colonnes) mais le CSV sera bien plus adapté à ce format.
    Donc on ne choisit pas son format "au pif" mais après avoir réfléchi à ce qui pourra être le mieux...

    Citation Envoyé par taupivin Voir le message
    Est-ce que quelqu'un peut m'aider svp ?
    lg_53 a donné beaucoup de conseils. Je rajouterai que si tu sais écrire un truc à l'écran (print(truc)), alors la modif pour l'écrire dans un fichier est instantanée (fp=open(...); print(truc, file=fp); fp.close())

  4. #4
    Candidat au Club
    Homme Profil pro
    ingénieur supply chain
    Inscrit en
    Mai 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur supply chain
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour lg_53 et Sve@r,

    Je vous remercie pour vos conseils. J'ai pu trouvé la solution à mon problème.
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/08/2013, 09h27
  2. Réponses: 1
    Dernier message: 29/05/2013, 14h08
  3. Aide pour faire les jointures sur une requête
    Par calitom dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/06/2010, 18h33
  4. [MySQL] Passer les résultats d'une requête dans un tableau 2D pour un webservice ?
    Par tintin72 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/06/2007, 01h36
  5. Transformer les résultats d'une requête dans un autre ordre
    Par keikun dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 12/04/2006, 16h29

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