【问题标题】:ValueError: Circular reference detectedValueError:检测到循环参考
【发布时间】:2021-06-19 01:03:38
【问题描述】:

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

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

【问题讨论】:

    标签: python


    【解决方案1】:

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

    import json
    
    d = {}
    d["a"] = d
    
    json.dumps(d) # raises ValueError: Circular reference detected
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-18
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多