首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在replit数据库中存储对象?

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

Stack Overflow用户
提问于 2021-10-25 18:49:05
回答 1查看 245关注 0票数 0

我的repl.it数据库出了点问题。我尝试使用以下代码在其中存储一堆数据和一个对象:

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

但是,每当我尝试运行它时,我都会得到以下错误:

代码语言:javascript
复制
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

当我删除对象时,它工作得很好,所以看起来这是导致问题的原因。你知道为什么会发生这种情况吗?或者有什么办法可以解决呢?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-11-04 19:51:49

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69713269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档