Seite 1 von 1

json error

Verfasst: Freitag 23. Mai 2014, 15:18
von Kamik423
sorry, konnte es schon selber lösen

auszug aus meinem code:

Code: Alles auswählen

                print "--------"
                print filePath
                print VDfile.read()
                print "gap1"
                print '{"MainScreen":"000","MainMenu":"001","Testrectangle":"002"}'
                print json.loads('{"MainScreen":"000","MainMenu":"001","Testrectangle":"002"}')
                print "gap2"
                fileData=json.loads(VDfile.read())
und der error:

Code: Alles auswählen

--------
/Users/Hans/Documents/programming/python/lcars 003/ObjData/VariableData/VD.lcs
{"MainScreen":"000","MainMenu":"001","Testrectangle":"002"}
gap1
{"MainScreen":"000","MainMenu":"001","Testrectangle":"002"}
{u'MainScreen': u'000', u'Testrectangle': u'002', u'MainMenu': u'001'}
gap2
No JSON object could be decoded
(das ganze ist in einem try/except dingens)

man sieht da, das VDfile.read() = {"MainScreen":"000","MainMenu":"001","Testrectangle":"002"}
wenn ich das manuell json.loads() dann funktioniert es,
wenn ich es direkt aus dem read auslese geht es nicht

[/size]

Re: json error

Verfasst: Samstag 24. Mai 2014, 08:58
von mutetella
@Kamik423
Nachdem Du die `read()` Methode auf ein Fileobjekt angewendet hast, steht der Cursor am Ende der Datei. Jeder weitere ``file.read()`` Aufruf liefert daher einen leeren String. Und was sollte `json.loads()` damit anfangen?

Ich verstehe allerdings nicht, weshalb Du `json` nicht einfach die gesamte Arbeit erledigen lässt. Selbst ein json-Objekt hochzuwürgen um daraus dann von `json` ein Pythonobjekt erstellen zu lassen ist irgendwie... von hinten durch die Brust erschossen. :shock:

mutetella