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 :

Importer et intégrer des fichier JSON dans des tables en base de données Postgres


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2023
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2023
    Messages : 17
    Par défaut Importer et intégrer des fichier JSON dans des tables en base de données Postgres
    Bonjour,

    J'aurais besoin de toute assistance technique ou conseil me permettant d'avancer dans la résolution de mon problème suivant :

    Dans le cadre d'un projet, nous disposons d'un formulaire en ligne (sur démarche simplifiée) qui sera renseigné par les habitants d'un territoire. Ainsi chaque formulaire renseigné, nous avons avec l'appui du service informatique, un fichier JSON
    généré automatique qui contient les données renseignées par l'utilisateur et qui est stocké dans un dossier : Par exemple j'ai un dossier Data (en local) qui contient des sous-dossiers dans lesquels se trouvent les fichiers JSON.

    Donc il y aura autant de fichiers JSON que de formulaires renseignés.

    Mon souhait est de mettre en place une solution qui me permet de lire les données contenues dans ces fichiers JSON et de les intégrer dans UNE table (qui contient les même champs que ceux contenus dans le formulaire) dans ma base de données PostgreSQL. Ou chaque formulaire correspondra à une ligne de ma table.

    Après quelques recherches, il me semble que cela pourrait se faire via un script Python et ses modules. Ne connaissant pas trop ce langage mais via les ressources sur Internet, j'ai installé Python et le module :psycopg2.
    J'ai « grigoté » un peu sur Internet et créé une première version de code qui, je le sens, pourrait contenir des éléments à améliorer (voir pièce jointe).

    Je travaille avec la version : Python 3.13.0

    Infos du module installé : La version de psycopg2 installé dans le poste :

    Name: psycopg2-binary
    Version: 2.9.10
    Summary: psycopg2 - Python-PostgreSQL Database Adapter
    Home-page: https://psycopg.org/
    Author: Federico Di Gregorio
    Author-email: fog@initd.org
    License: LGPL with exceptions
    Location: C:\Python\Lib\site-packages
    Mais ma principale difficulté est liée au module psycopg2 (que j'ai pourtant bien installé sur mon poste) et qui semble être la source de l'erreur. Ou bien incompatibilité entre la version de Python et le module en question.

    Ainsi quand j'exécute ce code sur IDLE, par exemple pour faire un test, je reçois le message d'erreur suivant :

    Code cmd : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "C:/Users/abalde/Desktop/test script_python import fichier JSON/import_json_test_db.py", line 3, in <module>
        import psycopg2
      File "C:\Python\Lib\site-packages\psycopg2\__init__.py", line 51, in <module>
        from psycopg2._psycopg import (                     # noqa
    ImportError: DLL load failed while importing _psycopg: Le module spécifié est introuvable.


    Je suis preneur de tout conseil ou autre piste de solution envisageable !!

    bien cordialement.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 069
    Par défaut
    Bonsoir,

    Ainsi quand j 'execute ce code sur IDLE par exmple pour faire un test , je reçois le message d'erreur suivant :

    Traceback (most recent call last):
    File "C:/Users/abalde/Desktop/test script_python import fichier JSON/import_json_test_db.py", line 3, in <module>
    import psycopg2
    File "C:\Python\Lib\site-packages\psycopg2\__init__.py", line 51, in <module>
    from psycopg2._psycopg import ( # noqa
    ImportError: DLL load failed while importing _psycopg: Le module spécifié est introuvable.
    La dernière version de psycopg 2.9.10 est bien compatible avec la version Python 3.13

    Utilisez plutôt le module psycopg2-binary

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pip install psycopg2-binary

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

    Pour python3.13, la version pre-compilée compatible de psycopg2_binary pour Windows n'existe pas encore.
    => Comment avez vous installé ce module?
    Vous pouvez utiliser une version de Python plus ancienne 3.12 (l'installation fonctionne *et* import trouve les DLL) ou changer de plateforme (linux, OSX,...)

    Pour le reste, vouloir réaliser un projet sans connaître le langage et ses outils... c'est quand même un peu osé. Mais bon, si vous êtes étudiant vous pouvez passer autant de temps que vous voulez à apprendre c'est votre temps.

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

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2023
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2023
    Messages : 17
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,

    Pour python3.13, la version pre-compilée compatible de psycopg2_binary pour Windows n'existe pas encore.
    => Comment avez vous installé ce module?
    Vous pouvez utiliser une version de Python plus ancienne 3.12 (l'installation fonctionne *et* import trouve les DLL) ou changer de plateforme (linux, OSX,...)

    Pour le reste, vouloir réaliser un projet sans connaître le langage et ses outils... c'est quand même un peu osé. Mais bon, si vous êtes étudiant vous pouvez passer autant de temps que vous voulez à apprendre c'est votre temps.

    - W
    Bonjour,

    Merci pour votre réponse.

    Le module est installé par notre service informatique. Je vais essayé d'installer une version antérieure de python pour voir si cela serait lié à un problème d'incompatibilité.

    Par ailleurs, je suis jeune débutant, pas que je connais pas le langage, j'ai quand même quelques bases car je l'ai appris un peu à la fac, mais l'idée aussi est de chercher et explorer une piste de solution..

    bien cordialement.

  5. #5
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    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 762
    Par défaut
    Citation Envoyé par sanzob Voir le message
    Le module est installé par notre service informatique. Je vais essayé d'installer une version antérieure de python pour voir si cela serait lié à un problème d'incompatibilité.
    Il n'y a pas d'incompatibilité, juste que le kit dit "wheel" évitant d'avoir à compilerr depuis les sources n'est pas encore disponible sous Windows et cette version de Python.
    Normalement, sur la 3.13 la commande "pip install psycopg2-binary" récupère le tgz "psycopg2-binary-2.9.10.tar.gz" et essaie de le compiler ce qui va planter plus ou moins rapidement (car il faut avoir préparé la plateforme pour pouvoir "compiler").

    Vu le code que vous avez écrit, une autre solution serait de créer un fichier CSV intermédiaire puis de le charger dans la table PG avec les outils PG.

    Citation Envoyé par sanzob Voir le message
    Par ailleurs, je suis jeune débutant, pas que je connais pas le langage, j'ai quand même quelques bases car je l'ai appris un peu à la fac, mais l'idée aussi est de chercher et explorer une piste de solution..
    Nous avons tous été débutants, il y a plus ou moins longtemps! Juste que quand je vois que vous n'avez pas pensé à faire une liste de vos noms de colonnes (ou à récupérer cette liste du premier fichier JSON venu), c'est que vous ne savez pas combien d'heures on gâche à faire des copie/coller où une erreur se verra des kilomètres plus loin.

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

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2023
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2023
    Messages : 17
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Bonsoir,



    La dernière version de psycopg 2.9.10 est bien compatible avec la version Python 3.13

    Utilisez plutôt le module psycopg2-binary

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pip install psycopg2-binary

    Bonjour,

    merci pour votre réponse.
    En fait c'est ce module même que j'ai installé :
    M:\>pip install psycopg2-binary
    Requirement already satisfied: psycopg2-binary in c:\python\lib\site-packages (2.9.10)

    Bien cordialement.

Discussions similaires

  1. [LibreOffice][Base de données] Importer fichier .csv dans une table LO Base
    Par El Bosc dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 11/09/2019, 20h04
  2. Réponses: 5
    Dernier message: 01/01/2016, 01h08
  3. Réponses: 4
    Dernier message: 09/01/2008, 16h20
  4. importer les noms de fichiers html dans une table access
    Par abane badis dans le forum Access
    Réponses: 3
    Dernier message: 14/11/2005, 17h25

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