Base de données format Json?

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

ameni melki
Messages : 40
Enregistré le : 24 Fév 2021, 14:54

Base de données format Json?

Messagepar ameni melki » 10 Déc 2021, 15:22

Bonjour,

J'ai une base de données que je n'arrive pas à importer avec le bon format, je crois qu'elle est du type json, ci-dessous une ligne exemple de ma base

Code : Tout sélectionner

{"INDEXATION": {"DATE_FIN_DIFFUSION": "2016-10-24", "DEP_PUBLICATION": ["75", "95"], "DATE_LIMITE_REPONSE": "2016-10-24T12:00:00+01:00", "CRITERES_SOCIAUX_ENV": {"ENVIRONNEMENTAUX": ""}, "DATE_PUBLICATION": "2016-09-28", "DESCRIPTEURS": {"DESCRIPTEUR": {"CODE": "410", "LIBELLE": "Formation"}}, "RESUME_OBJET": "Prestations de formations à la déglutition et à la stimulation basale chez le patient porteur d'un polyhandicap grave pour les besoins de l'hôpital LA-ROCHE-GUYON,"}, "NOM_HTML": "16-141543.html", "REFERENCE": {"IDWEB": "16-141543", "TYPE_AVIS": {"STATUT": {"INITIAL": ""}, "FAMILLE": {"MAPA": ""}, "PERIMETRE": {"CMP-2006": ""}, "NATURE": {"APPEL_OFFRE": ""}}}}


j'ai essayé de l'importer dans R avec le package rjson, ça marche pas , même avec Power Query sur Excel il m'affiche des erreurs.

Est ce qu'il s'agit bien d'un format json? peut être je suis sur une mauvaise piste, est ce que vous avez une idée comment l'importer ou la transformer sous format de data normal.

Merci

Mickael Canouil
Messages : 1315
Enregistré le : 04 Avr 2011, 08:53
Contact :

Re: Base de données format Json?

Messagepar Mickael Canouil » 10 Déc 2021, 15:41

Bonjour,

Soit le "texte" dans un fichier "data.json" :

Code : Tout sélectionner

library(jsonlite)
as.
data.frame(read_json("data.json")) 


Comme un json ne donne pas forcément une table rectangulaire, à vous de formater la liste obtenue, comme dans le code que je propose qui fait l'hypothèse que chaque variable contient le même nombre d'éléments.

Cordialement,
Mickaël
mickael.canouil.fr | rlille.fr

ameni melki
Messages : 40
Enregistré le : 24 Fév 2021, 14:54

Re: Base de données format Json?

Messagepar ameni melki » 14 Déc 2021, 09:43

Bonjour,

Merci pour votre retour.

En exécutant le code(jsonlite) j'obtiens ce message d'erreur:
Error in parse_con(txt, bigint_as_char) : parse error: trailing garbage
RE": {"APPEL_OFFRE": ""}}}} {"INDEXATION": {"DATE_FIN_DIFFU
(right here) ------^


je n'ai jamais travailler avec une base json, je ne connais pas son format normal
ci-dessous 2 lignes de la base

Code : Tout sélectionner

{"INDEXATION": {"DATE_FIN_DIFFUSION": "2017-03-28", "DEP_PUBLICATION": ["75", "92"], "DATE_LIMITE_REPONSE": "2017-03-27T16:30:00+01:00", "CRITERES_SOCIAUX_ENV": {"ENVIRONNEMENTAUX": ""}, "DATE_PUBLICATION": "2017-02-23", "DESCRIPTEURS": {"DESCRIPTEUR": {"CODE": "433", "LIBELLE": "Assistance à maîtrise d'ouvrage"}}, "RESUME_OBJET": "Elaboration d'une faisabilité programme concernant le transfert et l'aménagement de divers laboratoires du pôle établissement pharmaceutique sur le site de l'AGEPS Nanterre"}, "NOM_HTML": "17-26828.html", "REFERENCE": {"IDWEB": "17-26828", "TYPE_AVIS": {"STATUT": {"INITIAL": ""}, "FAMILLE": {"MAPA": ""}, "PERIMETRE": {"CMP-2006": ""}, "NATURE": {"APPEL_OFFRE": ""}}}}
{"INDEXATION": {"DATE_FIN_DIFFUSION": "2017-04-28", "DEP_PUBLICATION": "75", "DATE_LIMITE_REPONSE": "2017-04-28T17:30:00+01:00", "CRITERES_SOCIAUX_ENV": {"ENVIRONNEMENTAUX": ""}, "DATE_PUBLICATION": "2017-03-15", "DESCRIPTEURS": {"DESCRIPTEUR": {"CODE": "66", "LIBELLE": "Restauration collective"}}, "RESUME_OBJET": "Remise à neuf du réseau frigorifique du restaurant agraf chevaleret"}, "NOM_HTML": "17-36336.html", "REFERENCE": {"IDWEB": "17-36336", "TYPE_AVIS": {"STATUT": {"INITIAL": ""}, "FAMILLE": {"MAPA": ""}, "PERIMETRE": {"CMP-2006": ""}, "NATURE": {"APPEL_OFFRE": ""}}}}


Pourquoi je n'arrive pas à importer la base dans R, est ce que j'utilise le mauvais code ou bien c'est la base qui n'est pas dans la bon format ?

Merci

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Base de données format Json?

Messagepar Pierre-Yves Berrard » 14 Déc 2021, 12:55

C'est bien du Json mais il contient une erreur de syntaxe.

Chaque ligne prise indépendamment est syntaxiquement correcte, mais 2 lignes ne peuvent se suivre de la sorte dans un fichier json.
Il faut par exemple les mettre dans un tableau (array) : [ligne1, ligne2, ...], ce qui donnerait :

Code : Tout sélectionner

[
{"INDEXATION": {"DATE_FIN_DIFFUSION": "2017-03-28", "DEP_PUBLICATION": ["75", "92"], "DATE_LIMITE_REPONSE": "2017-03-27T16:30:00+01:00", "CRITERES_SOCIAUX_ENV": {"ENVIRONNEMENTAUX": ""}, "DATE_PUBLICATION": "2017-02-23", "DESCRIPTEURS": {"DESCRIPTEUR": {"CODE": "433", "LIBELLE": "Assistance à maîtrise d'ouvrage"}}, "RESUME_OBJET": "Elaboration d'une faisabilité programme concernant le transfert et l'aménagement de divers laboratoires du pôle établissement pharmaceutique sur le site de l'AGEPS Nanterre"}, "NOM_HTML": "17-26828.html", "REFERENCE": {"IDWEB": "17-26828", "TYPE_AVIS": {"STATUT": {"INITIAL": ""}, "FAMILLE": {"MAPA": ""}, "PERIMETRE": {"CMP-2006": ""}, "NATURE": {"APPEL_OFFRE": ""}}}}
,
{"INDEXATION": {"DATE_FIN_DIFFUSION": "2017-04-28", "DEP_PUBLICATION": "75", "DATE_LIMITE_REPONSE": "2017-04-28T17:30:00+01:00", "CRITERES_SOCIAUX_ENV": {"ENVIRONNEMENTAUX": ""}, "DATE_PUBLICATION": "2017-03-15", "DESCRIPTEURS": {"DESCRIPTEUR": {"CODE": "66", "LIBELLE": "Restauration collective"}}, "RESUME_OBJET": "Remise à neuf du réseau frigorifique du restaurant agraf chevaleret"}, "NOM_HTML": "17-36336.html", "REFERENCE": {"IDWEB": "17-36336", "TYPE_AVIS": {"STATUT": {"INITIAL": ""}, "FAMILLE": {"MAPA": ""}, "PERIMETRE": {"CMP-2006": ""}, "NATURE": {"APPEL_OFFRE": ""}}}}
]

Un fichier contenant la chaîne ci-dessus est lu sans erreur par jsonlite::read_json.
PY

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: Base de données format Json?

Messagepar Pierre-Yves Berrard » 08 Fév 2022, 19:21

En modifiant légèrement le texte initial de la manière indiquée dans mon message précédent, on arrive à l'importer dans R :

Code : Tout sélectionner

texte_initial <- "{\"INDEXATION\": {\"DATE_FIN_DIFFUSION\": \"2017-03-28\", \"DEP_PUBLICATION\": [\"75\", \"92\"], \"DATE_LIMITE_REPONSE\": \"2017-03-27T16:30:00+01:00\", \"CRITERES_SOCIAUX_ENV\": {\"ENVIRONNEMENTAUX\": \"\"}, \"DATE_PUBLICATION\": \"2017-02-23\", \"DESCRIPTEURS\": {\"DESCRIPTEUR\": {\"CODE\": \"433\", \"LIBELLE\": \"Assistance à maîtrise d'ouvrage\"}}, \"RESUME_OBJET\": \"Elaboration d'une faisabilité programme concernant le transfert et l'aménagement de divers laboratoires du pôle établissement pharmaceutique sur le site de l'AGEPS Nanterre\"}, \"NOM_HTML\": \"17-26828.html\", \"REFERENCE\": {\"IDWEB\": \"17-26828\", \"TYPE_AVIS\": {\"STATUT\": {\"INITIAL\": \"\"}, \"FAMILLE\": {\"MAPA\": \"\"}, \"PERIMETRE\": {\"CMP-2006\": \"\"}, \"NATURE\": {\"APPEL_OFFRE\": \"\"}}}}
{\"INDEXATION\": {\"DATE_FIN_DIFFUSION\": \"2017-04-28\", \"DEP_PUBLICATION\": \"75\", \"DATE_LIMITE_REPONSE\": \"2017-04-28T17:30:00+01:00\", \"CRITERES_SOCIAUX_ENV\": {\"ENVIRONNEMENTAUX\": \"\"}, \"DATE_PUBLICATION\": \"2017-03-15\", \"DESCRIPTEURS\": {\"DESCRIPTEUR\": {\"CODE\": \"66\", \"LIBELLE\": \"Restauration collective\"}}, \"RESUME_OBJET\": \"Remise à neuf du réseau frigorifique du restaurant agraf chevaleret\"}, \"NOM_HTML\": \"17-36336.html\", \"REFERENCE\": {\"IDWEB\": \"17-36336\", \"TYPE_AVIS\": {\"STATUT\": {\"INITIAL\": \"\"}, \"FAMILLE\": {\"MAPA\": \"\"}, \"PERIMETRE\": {\"CMP-2006\": \"\"}, \"NATURE\": {\"APPEL_OFFRE\": \"\"}}}}"

texte_corrige <- paste("[", gsub("}}}}", "}}}},", texte_initial ), "null ]")

resultat <- head(jsonlite::parse_json(texte_corrige), -1)
PY


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité