2017-07-05 4 views
-1
import json 

newdic={"name":"John","age":30,"cars": [{ "name":"Ford", "models":["Fiesta", "Focus", "Mustang" ] },{ "name":"BMW", "models":[ "320", "X3", "X5"] },{ "name":"Fiat", "models":[ "500", "Panda" ] }]} 

with open('newjson','w') as pointer: 
json.dumps(pointer,newdic) 

Ich bin neu in JSON und Fehler beim JSON-Dump zu bekommen.Nicht in der Lage, dump.Json serializable Problem

json.dump(pointer,newdic) File "/usr/lib/python3.5/json/__init__.py", line 178, in dump 
for chunk in iterable: File "/usr/lib/python3.5/json/encoder.py", line 436, in _iterencode 
o = _default(o) File "/usr/lib/python3.5/json/encoder.py", line 179, in default 
raise TypeError(repr(o) + " is not JSON serializable") TypeError: <_io.TextIOWrapper name='newjson' mode='w' encoding='UTF-8'> is not JSON serializable 

können Sie mir bitte sagen, welches Objekt json Unterstützung überhaupt?

+0

Sie verwenden 'dumps' in Ihrem Code und sogar für' dump' das Argument Bestellung falsch ist. –

+0

Ihr Diktat ist ebenfalls kaputt. Du verpasst ein Doppelzitat vor _Fiesta_ –

+0

@MrGrj Entschuldigung dafür. Das war nur ein Tippfehler. –

Antwort

1

Es gibt zwei Probleme mit Ihrem Code:

  1. Sie müssen json.dump nennen, nicht json.dumps.

  2. Sie haben die Reihenfolge der Argumente falsch. Es ist json.dump(obj, fp), nicht json.dump(fp, obj)

+0

können Sie mir bitte sagen, wann Dump und Dumps zu verwenden? –

+0

'dump', wenn Sie in eine Datei schreiben. – shx2