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 :

Comment lire un format jsonl


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Par défaut Comment lire un format jsonl
    Bonsoir,

    La documentation (http://jsonlines.readthedocs.io/en/latest/) n'est pas assez claire pour moi. Je ne comprends pas comment on lit les objets.
    En réécrivant ce code ci-dessous, j'ai une erreur alors que je voulais juste afficher le 'a' car l'erreur est au niveau du < for obj in reader: [....] > et là la doc n'a pas décrit la suite.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import jsonlines, json
    with jsonlines.open('example.jsonl') as reader:
        print(reader)
        for obj in reader:
            print('a')
    Traceback (most recent call last):
    <jsonlines.Reader at 0x49a330 wrapping 'example.jsonl'>
    File "C:\Users\synapse01\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jsonlines\jsonlines.py", line 158, in read
    value = self._loads(line)
    File "C:\Users\synapse01\AppData\Local\Programs\Python\Python36-32\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
    File "C:\Users\synapse01\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "C:\Users\synapse01\AppData\Local\Programs\Python\Python36-32\lib\json\decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
    json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 1 (char 2)

    The above exception was the direct cause of the following exception:

    Traceback (most recent call last):
    File "C:/Users/synapse01/AppData/Local/Programs/Python/Python36-32/dit/translation_corpora/translation_google_api_corpus_multinli.py", line 74, in <module>
    for obj in reader:
    File "C:\Users\synapse01\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jsonlines\jsonlines.py", line 203, in iter
    skip_empty=skip_empty)
    File "C:\Users\synapse01\AppData\Local\Programs\Python\Python36-32\lib\site-packages\jsonlines\jsonlines.py", line 163, in read
    six.raise_from(exc, orig_exc)
    File "<string>", line 2, in raise_from
    jsonlines.jsonlines.InvalidLineError: line contains invalid json: Expecting property name enclosed in double quotes: line 2 column 1 (char 2) (line 1)

    Process finished with exit code 1
    Merci

  2. #2
    bm
    bm est déconnecté
    Membre extrêmement actif

    Homme Profil pro
    Freelance
    Inscrit en
    Octobre 2002
    Messages
    874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Freelance
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Octobre 2002
    Messages : 874
    Billets dans le blog
    6
    Par défaut
    Possible avec un accès direct :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import json
     
    lines = ["1", "2", " trois"]
    reader = json.JSONEncoder().encode({"foo": lines})
    print reader

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Par défaut
    Merci pour ta réponse!

    Mon erreur était liée au fichier jsonlines. Je l'ai formaté or il faut que chaque ligne contienne 1 seul json valide, il ne faut pas le diviser sur plusieurs lignes.

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

Discussions similaires

  1. Comment lire un binaire en format texte?
    Par rouget dans le forum Shell et commandes POSIX
    Réponses: 10
    Dernier message: 29/12/2014, 10h46
  2. Comment lire un disc dur formaté mac sous windows
    Par doncamelo dans le forum Composants
    Réponses: 3
    Dernier message: 01/03/2012, 16h22
  3. [Debutant] Comment lire la taille d'un fichier binaire ?
    Par Invité dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 18/12/2003, 19h20
  4. Réponses: 2
    Dernier message: 06/12/2002, 07h50
  5. Réponses: 5
    Dernier message: 20/08/2002, 18h01

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