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

SAS Base Discussion :

Import fichier JSON


Sujet :

SAS Base

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Datamanager
    Inscrit en
    Janvier 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Datamanager

    Informations forums :
    Inscription : Janvier 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Import fichier JSON
    Bonjour à tous,

    J’aurais besoin de votre aide pour un problème d’import d’un fichier json en table SAS.

    Le fichier json a la tête suivante :

    Code JSON : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    {"status":0,"body":
    {"series":[
    {"id":990662592,"category":36,"timezone":"Europe\/Paris","model":53,"attrib":0,"startdate":1813270860,"enddate":1813275120,"date":"1999-12-31","deviceid":null,"data":
    {"var1":668,"var2":4663,"var3":3100,"var4":0,"var5":193 ,"var7":50,"var8":0,"var9":0,"var10":0,"var11":0,"var12":0,"var13":0,"var14":0},"modified":1813420334},
     
    {"id":990662591,"category":36,"timezone":"Europe\/Paris","model":53,"attrib":0,"startdate":1813256700,"enddate":1813257480,"date":"1999-12-31","deviceid":null,"data":
    {"var1":122 ,"var3":249,"var4":0,"var5":22,"var6":780,"var7":50,"var8":0,"var9":0,"var10":0,"var11":0,"var12":0,"var13":0,"var14":0},"modified":1813420334}
     
    {"id":990662590,"category":36,"timezone":"Europe\/Paris","model":53,"attrib":0,"startdate":1813259700,"enddate":1813259480,"date":"1999-12-31","deviceid":null,"data":
    {"var1":122 ,"var2":4683,"var3":249,"var4":0,"var5":22,"var6":780,"var7":50,"var8":0,"var9":0,"var10":0,"var11":0,"var12":0,"var13":0,"var14":0},"modified":1813429334}
     
    ],"more":true,"offset":300}
    }

    Normalement, le fichier tout est à la suite mais dans un soucis de lisibilité, je l’ai aéré. Dans l’exemple ci-dessus nous avons 3 lignes pour la futur table SAS.
    L’objectif étant d’avoir une table sas avec les variables suivantes : id, category, timezone, model, attrib, startdate, enddate, date, var1, var2, var3, modified.

    Actuellement, j’avais fait un programme d’import selon le code suivant.

    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
    data TEST;
    	infile "monfichier.json" dsd dlm='},{' lrecl = 1000000 n=1;
    	input 
    		@'id":' WK_ID :10. 
    		@'category":' WK_CAT :1. 
    		@'timezone":' WK_TIMEZ :$13. 
    		@'model":' WK_MODEL :2. 
    		@'attrib":' WK_ATTRIB :1. 
    		@'startdate":' WK_DDATE :10. 
    		@'enddate":' WK_FDATE :10.
    		@'date":' WK_DATE :$10. 
    		@'var1":' WK_VAR1 :best. 
    		@'var2":' WK_VAR2 :best. 
    		@'var3":' WK_VAR3 :best.
    		@'modified":' WK_DTMODIF :10. @@;
    run;
    J’ai cependant un problème c’est que l’ordre des variables peut changer du fait que la donnée est présente ou non. Cette modification n’est possible que pour les variables var1 à var14.
    Ainsi pour la ligne 1 (id=990662592) nous avons bien var1, var2 et var3 donc le programme fonctionne mais pour la ligne 2, il manque var2. Le programme va donc cherchez var2 dans la suite du fichier dans l’exemple c’est la ligne suivante (id= 990662590). Cela va entraîner un décalage dans la table SAS et donc complètement fausser l’import.

    Avez-vous une solution ?

    Merci par avance de votre aide.
    Bonne années à tous.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Statisticien/développeur BI
    Inscrit en
    Janvier 2012
    Messages
    326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Statisticien/développeur BI
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2012
    Messages : 326
    Points : 1 142
    Points
    1 142
    Par défaut
    bonjour,

    Il n'est pas simple d'importer un JSON dans SAS ...
    si vous utilisez la 9.4 M (3 ou 4 je ne sais plus ...) vous pouvez utiliser un libname JSON

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    filename data '/data/data.json';
    libname test JSON fileref=data;
    Cela va créer n tables dans la bibliothèque test en fonction de la structure du JSON

    Bon courage

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Datamanager
    Inscrit en
    Janvier 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Datamanager

    Informations forums :
    Inscription : Janvier 2019
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour votre réponse.
    Malheureusement ayant la version 9.4 M03 cela ne fonctionne pas. J'essaie de me renseigner pour passer à la M04 afin de faire le test.
    Je reviendrai vers vous une fois fait.

    Merci encore et bonne journée,

Discussions similaires

  1. Import fichier JSON via requête
    Par flanders68 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/12/2018, 10h00
  2. [9.5] Importer fichier .json -> postgresSQL
    Par chaugab dans le forum Requêtes
    Réponses: 1
    Dernier message: 30/11/2016, 11h26
  3. Réponses: 1
    Dernier message: 29/07/2015, 23h06
  4. comment importer les fichiers json à mongo db
    Par benmia dans le forum NoSQL
    Réponses: 2
    Dernier message: 24/05/2015, 16h25
  5. Réponses: 10
    Dernier message: 13/09/2011, 10h08

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