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 :

Lecture fichier Json en clair


Sujet :

Python

  1. #1
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut Lecture fichier Json en clair
    Bonjour,

    La lecture du fichier ok ,mais n'est pas lisible dans un format utf-8
    merci
    cordialement,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    #! /usr/bin/python
    #-*- coding:utf-8 -*-
    # Python 2.7
    from __future__ import unicode_literals
    import json
     
    with open('C:\\Progra......\\fichier.json','r') as info:
        js = json.load(info)
    print ('{} '.format(js))

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 343
    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 343
    Points : 36 864
    Points
    36 864
    Par défaut
    Salut,

    Si vous ne postez pas un exemple pour illustrer ce que vous entendez par là, il sera difficile de répondre autre chose que "ah bon, pourtant çà fonctionne bien chez moi...".

    - W

  3. #3
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 479
    Points : 9 277
    Points
    9 277
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne connais pas json, mais avec Python 2.x, pour lire un fichier texte dont on connait l'encodage ('utf-8' par exemple), il est facile d'utiliser le module codecs. Dans ce cas, open(...) est remplacé par codecs.open(..., encoding='utf-8'). Le résultat lu est en unicode.

    A voir si ça marche avec json.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 302
    Points : 6 782
    Points
    6 782
    Par défaut
    Salut,

    Pour l'utilisation d'unicode dans les fichiers .json, je fais comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    def write_json_file(data):
        js = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
        with open("DOCVERSIONS.json", 'w') as outf:
            outf.write(js)
     
    def read_json_file():
        with open(VERSIONSFILE, 'r') as inf:
            cnt = inf.read()
            return json.loads(cnt.decode('utf-8', 'ignore'))
    Remarque: si j'ouvre le fichier dans un éditeur de texte j'obtiens ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        "fr_FR": {
            "lang": "Fran\u00e7ais",
    mais dans mon code aucun problème, les données sont traitées correctement.

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 343
    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 343
    Points : 36 864
    Points
    36 864
    Par défaut
    Salut,

    Sous Python2, l'encoding des fichiers json est, par défaut, utf-8 et çà remonte en unicode.
    L'encoding ne doit être précisé que pour autre chose qu'utf-8.
    Tout cela est conforme au RFC 4637.

    Après on peut tester que çà le fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >>> from __future__ import unicode_literals
    >>> d = { 'a': 'ééé', 'b': 'ççç' }
    >>> import json
    >>> s = json.dumps(d)
    >>> f = open('foo.json', 'w')
    >>> f.write(s)
    >>> f.close()
    >>> f = open('foo.json', 'r')
    >>> z = json.load(f)
    >>> z
    {u'a': u'\xe9\xe9\xe9', u'b': u'\xe7\xe7\xe7'}
    mais on n'est pas plus avancé côté question/problème posé...

    - W

  6. #6
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut
    Bonjour,

    merci des réponses, oui comme tous j'obtiens un fichier dans le bloc notes illisible.
    et je voudrais avoir le texte dans le bon format. compréhensible par tout le monde.

    résultat : début/fin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {u'appDesc': {u'message': u'\u538c\u5026\u4e86\u5bc6\u7801\uff1f\u7528\u4e00\u952e\u5f0f\u767b\u5f55\u8282\}, u'appName': {u'message': u'description': u'Name of the extension.'}}

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 343
    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 343
    Points : 36 864
    Points
    36 864
    Par défaut
    Salut,

    A quoi correspond:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {u'appDesc': {u'message': u'\u538c\u5026\u4e86\u5bc6\u7801\uff1f\u7528\u4e00\u952e\u5f0f\u767b\u5f55\u8282\}, u'appName': {u'message': u'description': u'Name of the extension.'}}
    Les "u" et les simple quotes laissent penser qu'il s'agit d'une sorte de dict affiché par l'interpréteur Python.
    Si c'était du JSON, les littéraux seraient entre double quotes.

    Et le support de JSON (ou de l'utf-8) par le bloc note n'est pas une question de programmation Python, si?

    - W

  8. #8
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut
    salut
    oui python, et le petit code plus haut donne la partie donnée

    une partie du code json avec un type sous CMD est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    {
       "appDesc": {
          "description": "Description of the extension.\n\n[Old description]\nõ©║
    ºêþ¢æÚíÁµùÂÞç¬Õè¿õ┐ØÕ¡ÿµé¿þÜäþö¿µêÀÕÉìÕÆîÕ»åþáü´╝îÕøᵡñµé¿ÕÅ»õ╗ÑÕ£¿õ╗╗õ¢òÞ«¥Õ
    Õ¡ÿÕàѵ鿵ëǵ£ëþÜäµÁÅÞºêÕÖ¿ÒÇüþöÁÞäæÒÇüÕ╣│µØ┐Þ«¥ÕñçÕÆîµëïµ£║ÒÇé \n\n\nõ╝ÿþé╣´╝
    òÕ£░´╝îµîçÕ░ûÞ¢╗ÞºªÕ░▒ÕÅ»ÞÄÀÕÅûµëÇÚ£ÇÚçìÞªüõ┐íµü»ÒÇé\n,Þ»ÑÕÀÑÕàÀÕÅ»Þç¬Õè¿ÕÉ
    irefox´╝î IE8´╝î IE9´╝î IE10ÒÇé\n,iPhone´╝î iPad ÕÆîÕ«ëÕìôÕ║öþö¿ + ÕàÂÕ«âµëïµ£

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 343
    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 343
    Points : 36 864
    Points
    36 864
    Par défaut
    Salut,

    Que faire avec ces hiéroglyphes?
    Vous devriez avoir la possibilité de poster (uploader) un fichier texte (le fichier "fichier.json" de votre post initial) directement ou dans un zip.
    Ce que vous montrez là est une interprétation par la console du contenu de votre fichier, pas les "bytes".

    - W

  10. #10
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut
    Re

    normalement on devrais récupérer une/des url par exemple comme les fichiers json de Mozilla
    j'ai vu ça mais pige pas trop
    https://docs.python.org/release/3.1....s-and-decoders

    tout PC possède des fichiers jsons et je voudrais lire les miens en clair

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 343
    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 343
    Points : 36 864
    Points
    36 864
    Par défaut
    Citation Envoyé par Thierry_V Voir le message
    normalement on devrais récupérer une/des url par exemple comme les fichiers json de Mozilla
    j'ai vu ça mais pige pas trop
    https://docs.python.org/release/3.1....s-and-decoders
    Vous avez du JSON d'un côté et un composite d'objets Python de l'autre.
    Au cas ou les transformations ne conviennent pas, vous avez la possibilité d'ajouter votre sauce spéciale.

    Citation Envoyé par Thierry_V Voir le message
    tout PC possède des fichiers jsons et je voudrais lire les miens en clair
    "en clair"?
    Dans un forum de programmation Python, on lit le JSON avec json.load(s) (ou n'importe quelle autre librairie) ce qui est loin d'être "en clair".
    Et comme vous n'avez toujours pas posté le fichier "binaire" de votre JSON et qu'en plus "en clair", c'est peut être afficher un contenu avec le "bloc notes"... (voir le post de VinsS de ce matin), çà piétine.

    - W

  12. #12
    Membre régulier Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Points : 82
    Points
    82
    Par défaut
    Re

    le fichier json n'est pas possible à mettre en pièce jointe

Discussions similaires

  1. lecture fichier JSON
    Par munos46 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 12/07/2012, 08h52
  2. lecture de fichier Json
    Par Clarkocb dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/09/2008, 16h53
  3. [AJAX] Lecture d'un fichier json par ajax
    Par zizoo510 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2008, 12h11
  4. [AJAX] lecture fichier json distant
    Par 4R416N33 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 08/06/2008, 20h01

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