Problème json
Zarwax
Messages postés
18
Date d'inscription
Statut
Membre
Dernière intervention
-
M3NSONG3 Messages postés 615 Date d'inscription Statut Membre Dernière intervention -
M3NSONG3 Messages postés 615 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème dans un de mes script en python avec du json.
Voilà l'erreur que je reçois :
Est-ce que vous pourriez m'aider ? Merci beaucoup déjà d'avance !
Voilà le code du script :
J'ai un problème dans un de mes script en python avec du json.
Voilà l'erreur que je reçois :
Traceback (most recent call last):
File "tip_ws.py", line 33, in <module>
data_j = json.loads(data)
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 380, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting object: line 1 column 156 (char 155)
Est-ce que vous pourriez m'aider ? Merci beaucoup déjà d'avance !
Voilà le code du script :
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from time import sleep
import serial
import requests
import json
import time
url='myURL'
data = ""
letter_last=""
ser = serial.Serial ("/dev/ttyS0", 9600) #Open port with baud rate
while True:
data += ser.read()
#received_data = ser.read() #read serial port
#sleep(0.03)
#data_left = ser.inWaiting() #check for remaining byte
#received_data += ser.read(data_left)
#received_data = received_data.strip()
#Récupération du dernier caractère
letter_last = data[-1]
#Si dernier caractère est égal à "]" le message est terminé !
if letter_last == "]":
#Récupération du contenu sans les accolades "[" et "]"
data = data[1:-1]
#Decodage des données en JSON
data_j = json.loads(data)
#Récupération des données
password = "mypassword"
stationmeteo = data_j.get('stationMeteo')
pression = data_j.get('pression')
temperature = data_j.get('temperature')
humidite = data_j.get('humidite')
luminosite = data_j.get('luminosite')
uv = data_j.get('uv')
pluie = data_j.get('pluie')
qualiteAir = data_j.get('qualiteAir')
vent = data_j.get('vent')
#Préparation de l'objet JSON à envoyer dans la requête HTTP au serveur
content = {
'password' : password,
'stationMeteo' : stationmeteo,
'pression' : pression,
'temperature' : temperature,
'humidite' : humidite,
'luminosite' : luminosite,
'uv' : uv,
'pluie' : pluie,
'qualiteAir' : qualiteAir,
'vent' : vent
}
#Création de la requête HTTP avec l'url et l'objet JSON
response = requests.post(url, content)
#Affichage des informations
print ('AJOUT DONNEES - ' + time.strftime("%Y/%m/%d %H:%M:%S") + '\n')
print (content)
print ('\n')
print (response.json().get('response'))
print ('---------------------------------')
#Réinitialisation des données
data = ""
letter_last = ""
content = ""
data_j = ""
A voir également:
- Json.parse: unexpected end of data at line 1 column 1 of the json data
- App data - Guide
- Windows data recovery - Télécharger - Récupération de données
- Get data back - Télécharger - Récupération de données
- Appel data zone franche ✓ - Forum Vos droits sur internet
- Input signal out of range - Forum Ecran
1 réponse
Salut !
Désolé du retard dans la réponse.
Pour ce problème, il faudrait sûrement mieux que tu regardes le format de tes données json. Visiblement c'est dans la lecture du fichier que Python crash...
Essaye d'afficher les données que tu veux parse de JSON pour voir si la syntaxe ne pose pas problème par exemple.
Désolé du retard dans la réponse.
Pour ce problème, il faudrait sûrement mieux que tu regardes le format de tes données json. Visiblement c'est dans la lecture du fichier que Python crash...
Essaye d'afficher les données que tu veux parse de JSON pour voir si la syntaxe ne pose pas problème par exemple.