Ja čítam v json zo súboru na vzdialenom serveri pomocou tkaniny:
from StringIO import StringIO
output = StringIO()
get(file_name, output)
output = output.getvalue()
Hodnota output
je teraz:
""{\n \"status\": \"failed\", \n \"reason\": \"Record already
exists.\"\n}""
Keď sa pokúsim analyzovať tento reťazec do slovníka pomocou json.loads(output)
jej vráti objekt unicode u"{n "status": "failed", n "reason": "Record already exists."n}"
skôr ako slovník.
Prišiel som pomerne zlou opravou, len som odovzdal nový unicode objekt do json.loads ():
json.loads(json.loads(output))
Existuje nejaký iný spôsob riešenia tohto problému?
na zdravie
odpovede:
16 pre odpoveď č. 1Vaše údaje unikli.
json.loads(output.decode("string-escape").strip("""))
mali by ste dosiahnuť požadované výsledky:
Out[12]: {"reason": "Record already exists.", "status": "failed"}
13 pre odpoveď č. 2
Riešením by bolo zistiť, prečo je váš súbor dvojnásobne zakódovaný JSON, ale vzhľadom na to, že údaje prechádzajúce cez json.loads
dvakrát je správny prístup.