python json dump列表_json.dump文件无法在python中序列化包含列表的字典

在尝试将包含列表的字典序列化为JSON时遇到TypeError。问题在于字典中的'scenarios'键对应一个列表,该列表包含字典,而这些字典中的'scenariotestinputid'等键值不是JSON可序列化的类型。完整字典内容包括'scenarios'列表和其他信息。错误发生在json.dumps()调用中,可能需要确保所有数据都是JSON兼容的数据类型。
摘要由CSDN通过智能技术生成

我在一个名为result的python字典中有这个部分[{'scenariotestinputid': 1, 'scenarioid_id': 1, 'testinputid_id': 1}]。我打电话的时候dumps.json文件(结果)我得到一个TypeError,说[{'scenariotestinputid':1,'scenarioid_id':1,'testinputid_id':1}]不是JSON可序列化的。有人能解释一下为什么吗?在

编辑1:完整的“结果”字典内容是:result: {'scenarios': [{'inputs': [{'scenariotestinputid': 1, 'scenarioid_ id': 1, 'testinputid_id': 1}], 'scenarioid': 1, 'scenarioname': u'Default Scenario', 'testid_id': 1, 'isdefault': 1}, {'inputs': [], 'scenarioid': 2, 'scenarioname': u'Scenario-1', 'testid_id': 1, 'isdefault': 0}], 'status': 'success'}

我使用的代码是:

^{pr2}$

函数内部

编辑2:回溯如下:(Pdb)

> /opt/my_apps/cpr_proj/cpr/views.py(512)set_benchmark_metrics_dispatcher()

-> return HttpResponse(json.dumps(result), content_type="application/json")

(Pdb)

TypeError: TypeErro...izable",)

> /opt/my_apps/cpr_proj/cpr/views.py(512)set_benchmark_metrics_dispatcher()

-> return HttpResponse(json.dumps(result), content_type="application/json")

(Pdb) bt

/opt/Python-2.7.3/Lib/threading.py(524)__bootstrap()

-> self.__bootstrap_inner()

/opt/Python-2.7.3/Lib/threading.py(551)__bootstrap_inner()

-> self.run()

/opt/Python-2.7.3/Lib/threading.py(504)run()

-> self.__target(*self.__args, **self.__kwargs)

/opt/Python-2.7.3/Lib/SocketServer.py(582)process_request_thread()

-> self.finish_request(request, client_address)

/opt/Python-2.7.3/Lib/SocketServer.py(323)finish_request()

-> self.RequestHandlerClass(request, client_address, self)

/usr/local/lib/python2.7/site-packages/django/core/servers/basehttp.py(139)__init__()

-> super(WSGIRequestHandler, self).__init__(*args, **kwargs)

/opt/Python-2.7.3/Lib/SocketServer.py(638)__init__()

-> self.handle()

/opt/Python-2.7.3/Lib/wsgiref/simple_server.py(124)handle()

-> handler.run(self.server.get_app())

/opt/Python-2.7.3/Lib/wsgiref/handlers.py(85)run()

-> self.result = application(self.environ, self.start_response)

/usr/local/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py(67)__call__()

-> return self.application(environ, start_response)

/usr/local/lib/python2.7/site-packages/django/core/handlers/wsgi.py(241)__call__()

-> response = self.get_response(request)

/usr/local/lib/python2.7/site-packages/django/core/handlers/base.py(111)get_response()

-> response = callback(request, *callback_args, **callback_kwargs)

> /opt/my_apps/cpr_proj/cpr/views.py(512)set_benchmark_metrics_dispatcher()

-> return HttpResponse(json.dumps(result), content_type="application/json")

/opt/Python-2.7.3/Lib/json/__init__.py(231)dumps()

-> return _default_encoder.encode(obj)

/opt/Python-2.7.3/Lib/json/encoder.py(201)encode()

-> chunks = self.iterencode(o, _one_shot=True)

/opt/Python-2.7.3/Lib/json/encoder.py(264)iterencode()

-> return _iterencode(o, 0)

/opt/Python-2.7.3/Lib/json/encoder.py(178)default()

-> raise TypeError(repr(o) + " is not JSON serializable")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值