ValueError:检测到循环引用

Muh*_*sim 5 python

我有大约 287 行的代码,当它在命令提示符下执行时一切正常,但是当它在本地主机上使用 Flask 编译时,它显示以下错误:

ERROR:series-api:Exception on /papis/get-series [GET]
Traceback (most recent call last):
  File "C:\Users\mkiak\AppData\Roaming\Python\Python39\site-packages\flask\app.py", line 2070, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\mkiak\AppData\Roaming\Python\Python39\site-packages\flask\app.py", line 1515, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\mkiak\AppData\Roaming\Python\Python39\site-packages\flask\app.py", line 1513, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\mkiak\AppData\Roaming\Python\Python39\site-packages\flask\app.py", line 1499, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
  File "E:\series-api.py", line 275, in getSeries
    return jsonify(result)
  File "C:\Users\mkiak\AppData\Roaming\Python\Python39\site-packages\flask\json\__init__.py", line 348, in jsonify
    f"{dumps(data, indent=indent, separators=separators)}\n",
  File "C:\Users\mkiak\AppData\Roaming\Python\Python39\site-packages\flask\json\__init__.py", line 129, in dumps
    rv = _json.dumps(obj, **kwargs)
  File "C:\Program Files\Python39\lib\json\__init__.py", line 234, in dumps
    return cls(
  File "C:\Program Files\Python39\lib\json\encoder.py", line 199, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Program Files\Python39\lib\json\encoder.py", line 257, in iterencode
    return _iterencode(o, 0)
ValueError: Circular reference detected
Run Code Online (Sandbox Code Playgroud)

Ale*_*sky 7

您在对象本身内部拥有对对象的引用。最小的例子:

import json

d = {}
d["a"] = d

json.dumps(d) # raises ValueError: Circular reference detected
Run Code Online (Sandbox Code Playgroud)

您可以尝试创建该对象的(深层)副本。

d = {}
d["a"] = d.copy()

json.dumps(d)
Run Code Online (Sandbox Code Playgroud)