文本文件、MongoDB 还是 JSON? [关闭]
Posted
技术标签:
【中文标题】文本文件、MongoDB 还是 JSON? [关闭]【英文标题】:Text File, MongoDB or JSON? [closed] 【发布时间】:2021-08-08 17:23:05 【问题描述】:所以,我正在学习 python 和 discord.py,在一个有 500 行代码的机器人中,我只请求了一项帮助。其余的,我一直在研究自己和反复试验。我目前正处于十字路口,想要一些建议走哪条路。我不想问怎么做,我会自己想办法(希望如此)。
所以,我在我的 Windows PC 上运行了一个机器人,它只在我自己的单个服务器上运行。该机器人返回一条嵌入消息,其中包含基于一系列角色的非活动用户列表。在几个嵌套的 IF 语句之后,它添加了带有 person.mention 的字段。然后将列表发布到特定频道,并全部提及。
根据规则,他们有 48 小时的时间来改进他们的活动,这将改变他们的角色。
因此,虽然第一个命令的工作原理很吸引人,但我希望创建第二个命令,通过之前“审核”中的用户列表(通常约 15-30 人)检查他们是否活动已改进(如果存在一组角色)并在员工频道中报告“成员不合规,可能被删除:”然后删除已保存用户的列表以进行下一次审核。 (每月两次)
为此,我需要研究如何,但为了节省我的时间,我问我应该研究哪条路线以及为什么?文本文件? D B?还是 JSON?
感谢大家的意见。
【问题讨论】:
很难对如此模糊的描述给出建议。但如果它只在单个主机上运行,我会使用 JSON,因为你可以很容易地做到with open("filename", "w") as file: json.dump(users_dict_or_list, file)
和 with open("filename") as file: users = json.read(file)
。似乎是最少的麻烦。
【参考方案1】:
我通常建议对小型机器人使用小型数据库(如 sqlite),但如果您是 python 新手,则不应该学习 SQL。我想使用JSON
文件是可行的,尽管将它们用作数据库并不是一个好主意,它主要用作配置文件。使用JSON
文件的一些缺点是:
JSON
文件。
JSON
文件的另一种替代方法是 yaml
或 toml
文件,但缺点是相同的。
使用数据库:
如果您想学习 SQL(有很好的、免费的、易于关注的资源,例如 sqlbolt),优势在于:
数据库将您的数据组织成表格,并且可以快速插入、检索和删除记录。 您可以施加唯一性约束以防止重复。 Python 库为您强制执行同步。 查询语言直观,只需几个小时即可开始运行简单的查询!MongoDB 是一个很好的数据库选择,我没有亲自使用过,但它是一个很好的非关系型数据库(不使用 SQL)。
PS:甚至不要考虑使用 txt
文件作为数据库,这是一个糟糕、糟糕、糟糕的主意。
【讨论】:
以上是关于文本文件、MongoDB 还是 JSON? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Robomongo 从 MongoDB 导出 JSON
Symfony(PHP 框架)和 MongoDB(或任何基于 json 的数据库)[关闭]