python - 在 python 中选择简单数据库中的项目时需要帮助

标签 python sql circuit eda

我正在尝试用 Python 编写电路原理图绘制工具。我正在创建一个基于字典的简单数据库,其中包含所有组件及其属性。我还尝试创建一种简单的查询语言,您可以在其中选择,例如,所有值 >100ohms 或 footprint='0402' 的电阻器

到目前为止,我可以使用一些原始谓词搜索来选择事物,然后对更复杂的事物进行并集和交集。

但是,我无法定义纯否定搜索的语义应该是什么。例如,像

足迹 != '0402'

应该选择足迹不等于 0402 的所有项目。但是仅使用交集执行此操作会给我一个空白结果。为此,我需要选择所有组件,然后与“not 0402”相交以删除我不需要的组件。

但这似乎有点蛮力,而且似乎是一个可疑的解决方案。我对使用“真正的”数据库和查询语言不感兴趣,所以请不要建议。我在这里寻找适当的工程原理,不一定是解决问题的方法。

这个问题在某种程度上在 SICP 书中有所涉及,但我感到非常困惑,因为我认为他们也在使用延续和其他东西,但我还不明白。

有人可以解释一下“正确”的用法应该是什么来否定选择东西。我在商业 cad 工具中尝试了这个,它按预期工作,但后来我看到了一些 SQL 查询示例(我认为),它们首先选择了东西,然后删除了不需要的东西。

谢谢
迈克尔

最佳答案

有了合适的数据库,您会开心很多。

您的 Python 发行版中有 SQLite。只需定义表而不是字典并使用 SQL。

如果您需要更强大和更复杂的功能,可以添加 SQLAlchemy (或 SQLObject),您将不会为这些问题而苦恼。

关于python - 在 python 中选择简单数据库中的项目时需要帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/399957/

相关文章:

arrays - 如何在 Circcom 中访问索引为 "Unknown"的数组元素?

用于计算逻辑电路输出的 Matlab 程序

Python Raw Socket 无法接收ICMP报文;出现在 Wireshark 中

python - python 中的拼字游戏

mysql - 删除数据库中的重复行

mysql - 使用 JOIN 优化 MySQL 计数查询

JAVA使用to.String()方法返回电阻网络的字符串

python - 将 pyperclip 复制到剪贴板与 pyautogui 粘贴相结合?

python - 如何防止 Google Colab 断开连接?

python - 了解 SQLAlchemy 中的中间 SQL 语句