J'ai une chaîne JSON que je poste sur mon script Python. Ceci est un exemple de chaîne:simplejson en Python renvoie une erreur de valeur
{"uid":"1111111","method":"check_user"}
Dans mon code Python j'appelle simplement simplejson.loads(str)
où str
est la chaîne JSON de la demande. La chaîne JSON semble bien, car lorsque je l'imprime à la demande, elle est intacte. Cependant, j'obtiens un ValueError:
Extra data: line 1 column 41 - line 1 column 48 (char 41 - 48)
Traceback (most recent call last): File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/_webapp25.py",
line 703, in __call__
handler.post(*groups) File "/Users/.../app/controller/api_controller.py", line 25, in post
req = simplejson.loads(req) File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_0_96/django/utils/simplejson/__init__.py",
line 232, in loads
return cls(encoding=encoding, **kw).decode(s) File
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django_0_96/django/utils/simplejson/decoder.py",
line 254, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
Des idées de quoi il s'agit? J'ai essayé de supprimer de nouvelles lignes, des tabulations et des barres obliques de la chaîne, même en le décodant en utilisant .decode('string_escape')
La pile ici n'est pas utile. Essayez de minimiser la portée, et cela vous aidera probablement à identifier les erreurs. Ou essayez de mettre des empreintes pour vous assurer que les valeurs sont correctes. Si ce n'est pas utile, essayez d'éliminer les dépendances, idéalement, mettez tout dans un seul fichier et postez à nouveau. –
@RomanHwang En fait, c'était toute l'information nécessaire pour répondre à la question. Il a expliqué qu'il savait que c'était la partie (imprimable de la chaîne) qui était transmise à JSON parce qu'il «l'imprimait», et il a fourni l'erreur. – agf