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)
我是json的新手,在做json dump时遇到错误。
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
你可以告诉我json支持哪个对象吗?
答案 0 :(得分:1)
您的代码存在两个问题:
您需要致电json.dump,而不是json.dumps。
你的参数顺序错了。它是json.dump(obj, fp)
,而不是json.dump(fp, obj)