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 :

Probleme sur traitement fichier Json [Python 3.X]


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 482
    Points : 161
    Points
    161
    Par défaut Probleme sur traitement fichier Json
    Bonjour a tous,

    J'ai un problème sur le traitement d'un fichier Json, j'ai nettoyer le fichier, mais que ce soit en Json ou csv, quand je le transforme en dataframe avec pandas, je me retrouve avec un Json qui a une seule colonne et 434 lignes, dans chaque ligne j'ai différent items séparé par des ";".
    De ce fait mon fichier du coup ne comporte qu'une seule colonne au lieu de 13, car les séparateurs qui sont des ";" et ne sont pas pris en compte.

    voici mon code:

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    import pandas as pd
     
    import numpy as np
     
    df = pd.read_json(r'test7.json')
    df.info()
    #df = df.iloc[:3]
    print(df)

    et le résultat:

    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
    <class 'pandas.core.frame.DataFrame'>
    RangeIndex: 434 entries, 0 to 433
    Data columns (total 1 columns):
     #   Column  Non-Null Count  Dtype
    ---  ------  --------------  -----
     0   0       434 non-null    object
    dtypes: object(1)
    memory usage: 3.5+ KB
     
     
                                                         0
    0    id;nom_lieu_dit;code_postal;code_insee;nom_com...
    1    88532_B063;Le Village Est;88330;88532;Zincourt...
    2    88531_B095;Les Quatre Feignes;88400;88531;Xonr...
    3    88527_B124;La Petite Fin;88700;88527;Xaffévil...
    4    88525_B022;Dessus Voidpont;88500;88525;Vrovill...
    Comment puis je constituer une matrice ou une dataframe avec 434 ligne et 13 colonnes?

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par zoumzoum59 Voir le message
    Comment puis je constituer une matrice ou une dataframe avec 434 ligne et 13 colonnes?
    Déjà vous partez d'un fichier CSV et vous le lisez en précisant le delimiteur.

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

  3. #3
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 482
    Points : 161
    Points
    161
    Par défaut
    Merci wiztricks pour ton retour,

    Oui pas de soucis dans le principe, seulement mon fichier de départ est un Json et si je la transforme en csv, je ne peux pas l'ouvrir en précisant un délimiteur, car la première ligne de mon csv comporte un 0 qui est le numérotage de colonne

    j'ai testé le code suivant et j'ai une erreur si je précise un délimiteur, a cause du 0 au début du fichier csv:

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import pandas as pd
     
    import numpy as np
     
    df = pd.read_json(r'test7.json')
     
    df.to_csv (r'ame4.csv', index = None)
     
     
    array = pd.read_csv('ame3.csv', delimiter=";")
     
    print(type(array))
    array = array.iloc[1:]
    print(array)

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par zoumzoum59 Voir le message
    j'ai testé le code suivant et j'ai une erreur si je précise un délimiteur, a cause du 0 au début du fichier csv:
    Si vous aviez ouvert la documentation de pandas.read_csv, vous auriez trouvé comment dire d'ignorer les premières lignes du fichier.

    Citation Envoyé par zoumzoum59 Voir le message
    seulement mon fichier de départ et un Json
    Il faut peut être donner a pandas quelques indications sur la structure du fichier pour qu'il s'en sorte. La documentation est faite pour ça et il y a certainement des exemples qui traînent sur Internet.

    note: Si vous ne donnez pas de quoi reproduire avec un exemple de fichier JSON qui ait la même structure avec quelques informations typiques: regardez les informations fournies par ceux qui ont demandé de l'aide sur Internet, c'est très instructif.


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

  5. #5
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 482
    Points : 161
    Points
    161
    Par défaut
    Le soucis n'est pas de trouver des exemples, c'est qu'il a une subtilité du fichier ou de programmation que je ne capte pas.
    Des essaies et des recherches d'exemples j'en ai essayé pendant presque une journée, s'en trouver un résultat qui me convienne.
    Mon soucis est qu'il y a des outils avec Numpy ou Pandas qui sont sensé facilité ce genre de manipulation, mais je ne trouve pas de solution.
    C'est pour cela que je faisait appel a vous.
    Et comme tu me le propose, mais je n’osais pas je met un exemple du fichiers Json.
    Ce qui permettra de mieux cerner la cause.
    Fichiers attachés Fichiers attachés

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par zoumzoum59 Voir le message
    Et comme tu me le propose, mais je n’osais pas je met un exemple du fichiers Json.
    Allez sur Internet pour voir à quoi ressemble un fichier JSON... et comparer le avec le votre.
    Réfléchissez un peu par quelle magie, pandas arrive à transformer un fichier JSON normal en tableau et pourquoi il n'y arrive pas avec le votre.

    Votre premier boulot est d'étudier vos données pour leur appliquer les traitements appropriés.
    Si vous ne vous y appliquez pas, c'est "garbage in, garbage out"...

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

  7. #7
    Membre habitué
    Homme Profil pro
    En reconversion
    Inscrit en
    Mai 2006
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : En reconversion

    Informations forums :
    Inscription : Mai 2006
    Messages : 482
    Points : 161
    Points
    161
    Par défaut
    Bonjour,

    J'ai trouvé une solution, mais juste en lisant la documentation je n'aurais pas trouvé, j'ai eu de la chance de trouver un code qui utilisait pour une commande :

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    pd.read_csv(xxx.csv,header=0)

    Puis en regardant la doc j'ai vu que header pouvait prendre différente valeur de 0 a 3.

    J'ai testé et finit par sortir le code suivant:

    Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import pandas as pd
     
    import numpy as np
     
    df = pd.read_json(r'test7.json')
    df.to_csv(r'ame4.csv', index=None)
     
     
    array = pd.read_csv('ame4.csv', sep=';', header=1)
    print(type(array))
    print(array)

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

Discussions similaires

  1. [C#] traitement fichier JSON
    Par akaDev dans le forum Débuter
    Réponses: 4
    Dernier message: 19/08/2015, 22h14
  2. J2EE envoie de mail problem sur les fichiers joints
    Par cesear89 dans le forum NetBeans
    Réponses: 1
    Dernier message: 26/03/2011, 14h30
  3. Probleme sur les fichiers (fonction fread)
    Par anoir dsr dans le forum C
    Réponses: 7
    Dernier message: 27/01/2011, 14h31
  4. Probleme sur mon fichier /etc/sudoers
    Par nora2311 dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 25/11/2008, 15h25
  5. Python probleme pour traitement fichier Xml avec l'API dom
    Par chenimitz dans le forum Général Python
    Réponses: 11
    Dernier message: 30/10/2007, 19h34

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