django错误 ValueError: Circular reference detected 解决方法
发布时间:2020-12-15 17:13:52 所属栏目:大数据 来源:网络整理
导读:django 错误:ValueError: Circular reference detected,具体错误信息: File?"C:Python27MyDjangojianzhi_002jianzhi_appviews.py",?line?418,?in?wx_get_job_detail????return?HttpResponse(json.dumps({'message':?message,?'data':?detail_data}))
django 错误:ValueError: Circular reference detected,具体错误信息: File?"C:Python27MyDjangojianzhi_002jianzhi_appviews.py",?line?418,?in?wx_get_job_detail ????return?HttpResponse(json.dumps({'message':?message,?'data':?detail_data})) File?"C:Python27libjson__init__.py",?line?244,?in?dumps ????return?_default_encoder.encode(obj) File?"C:Python27libjsonencoder.py",?line?207,?in?encode ????chunks?=?self.iterencode(o,?_one_shot=True) File?"C:Python27libjsonencoder.py",?line?270,?in?iterencode ????return?_iterencode(o,?0) ValueError:?Circular?reference?detected 错误意思:存在循环引用。 代码重现: import?json a?=?b?=?c?=?{} #?将b?c?存到?a a['b']?=?b a['c']?=?c json.dumps(a) 错误提示: ValueError????????????????????????????????Traceback?(most?recent?call?last) <ipython-input-5-2f50cf32d976>?in?<module>() ---->?1?json.dumps(a) /usr/lib/python2.7/json/__init__.pyc?in?dumps(obj,?skipkeys,?ensure_ascii,?check_circular,?allow_nan,?cls,?indent,?separators,?encoding,?default,?sort_keys,?**kw) ????241?????????cls?is?None?and?indent?is?None?and?separators?is?None?and ????242?????????encoding?==?'utf-8'?and?default?is?None?and?not?sort_keys?and?not?kw): -->?243?????????return?_default_encoder.encode(obj) ????244?????if?cls?is?None: ????245?????????cls?=?JSONEncoder /usr/lib/python2.7/json/encoder.pyc?in?encode(self,?o) ????205?????????#?exceptions?aren't?as?detailed.??The?list?call?should?be?roughly ????206?????????#?equivalent?to?the?PySequence_Fast?that?''.join()?would?do. -->?207?????????chunks?=?self.iterencode(o,?_one_shot=True) ????208?????????if?not?isinstance(chunks,?(list,?tuple)): ????209?????????????chunks?=?list(chunks) /usr/lib/python2.7/json/encoder.pyc?in?iterencode(self,?o,?_one_shot) ????268?????????????????self.key_separator,?self.item_separator,?self.sort_keys,????269?????????????????self.skipkeys,?_one_shot) -->?270?????????return?_iterencode(o,?0) ????271? ????272?def?_make_iterencode(markers,?_default,?_encoder,?_indent,?_floatstr,ValueError:?Circular?reference?detected 究其原因,是因为 a b c 实际上指向的是同一个对象的引用。 解决办法: import?json a,?b?,?c?=?{},?{},?{} #?将b?c?存到?a a['b']?=?b a['c']?=?c json.dumps(a) 总结: 一般遇到ValueError: Circular reference detected错误,是因为同一个变量被循环引用导致的bug。检查代码中哪一个变量被循环引用,更改变量名就可以。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |