如何在replit数据库中存储对象?



我有一些问题与回复。它的数据库。我试图存储一堆数据,以及一个对象在它使用以下代码:

db[message.author.id] = {
"creation_date": datetime.datetime.now().strftime("%Y-%m-%d"),
"tutorial_completed": False,
"money": 0,
"properties": [shack]  # < the object
}

然而,每当我试图运行它,我得到以下错误:

Traceback (most recent call last):
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/client.py", line 343, in _run_event
await coro(*args, **kwargs)
File "main.py", line 116, in on_message
db[message.author.id] = {
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/replit/database/database.py", line 491, in __setitem__
self.set(key, value)
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/replit/database/database.py", line 500, in set
self.set_raw(key, _dumps(value))
File "/opt/virtualenvs/python3/lib/python3.8/site-packages/replit/database/database.py", line 56, in dumps
return json.dumps(val, separators=(",", ":"), cls=DBJSONEncoder)
File "/usr/lib/python3.8/json/__init__.py", line 234, in dumps
return cls(
File "/usr/lib/python3.8/json/encoder.py", line 199, in encode
chunks = self.iterencode(o, _one_shot=True)
File "/usr/lib/python3.8/json/encoder.py", line 257, in iterencode
return _iterencode(o, 0)
ValueError: Circular reference detected

当我删除对象时,它完全正常工作,所以似乎这是导致问题的原因。你知道为什么会发生这种情况,或者有什么解决办法吗?谢谢。

您可以尝试使用json模块将其编码为JSON对象,首先将其转换为字符串,然后存储该字符串。我曾经用环境变量做过类似的事情,但不记得具体细节了。

最新更新