Je cours le code suivant
import json
addrsfile =
open("C:\\Users\file.json",
"r")
addrJson = json.loads(addrsfile.read())
addrsfile.close()
if addrJson:
print("yes")
Mais en me donnant l'erreur suivante-
Traceback (most recent call last):
File "C:/Users/Mayur/Documents/WebPython/Python_WebServices/test.py", line 9, in <module>
addrJson = json.loads(addrsfile.read())
File "C:\Users\Mayur\Anaconda3\lib\json\__init__.py", line 354, in loads
return _default_decoder.decode(s)
File "C:\Users\Mayur\Anaconda3\lib\json\decoder.py", line 342, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 190)
Quelqu'un m'aider s'il vous plaît?
Le fichier JSON est comme-
{"name": "XYZ", "address": "54.7168,94.0215", "country_of_residence": "PQR", "countries": "LMN;PQRST", "date": "28-AUG-2008", "type": null}
{"name": "OLMS", "address": null, "country_of_residence": null, "countries": "Not identified;No", "date": "23-FEB-2017", "type": null}
Vous avez deux enregistrements dans votre fichier json, et json.loads()
n'est pas capable de décoder plus d'un. Vous devez le faire enregistrement par enregistrement.
Voir Python json.loads affiche ValueError: Extra data
OU vous devez reformater votre JSON pour qu'il contienne un tableau:
{
"foo" : [
{"name": "XYZ", "address": "54.7168,94.0215", "country_of_residence": "PQR", "countries": "LMN;PQRST", "date": "28-AUG-2008", "type": null},
{"name": "OLMS", "address": null, "country_of_residence": null, "countries": "Not identified;No", "date": "23-FEB-2017", "type": null}
]
}
serait acceptable à nouveau. Mais il ne peut y avoir plusieurs objets de premier niveau.
J'étais en train d'analyser JSON à partir d'un appel d'API REST et j'ai eu cette erreur. Il s'avère que l'API est devenue "plus agitée" (par exemple, en ce qui concerne l'ordre des paramètres, etc.) et renvoyait donc des résultats mal formés. Vérifiez que vous obtenez ce que vous attendez :)