`toml`和`tomlkit`都是Python中用于处理TOML文件的库,但它们有一些关键的区别:
1. **实现方式**:`toml`库是完全用Python实现的,而`tomlkit`库也是用Python实现的,但它是由`poetry`的作者编写的,也是`poetry`的一个依赖¹。
2. **对None的处理**:在处理包含None值的配置时,`toml`库会忽略这个键值对,给出一个空字符串;而`tomlkit`库会报错¹。
3. **键的有序性保留**:在Python 3.7及以后的版本中,字典中键的顺序是保留的。在这些包中,`tomlkit`保留了键的顺序¹。
4. **对TOML标准的兼容性**:`tomlkit`库在解析合法的TOML文件和解析不合标准的TOML文件时给出错误提示的能力上,表现得更好¹。
总的来说,`toml`和`tomlkit`在处理TOML文件时有各自的优势,你可以根据你的具体需求来选择使用哪一个库。¹
源: 与必应的对话, 2023/11/9
(1) 在python中,该选择哪个toml包呢? - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/514155226.
(2) 什么是TOML——配置Python应用程序的一种更简单的方法 - 掘金. https://juejin.cn/post/7128173319345405960.
(3) TOML 教程 - 可能是目前最好的配置文件格式 - 知乎. https://zhuanlan.zhihu.com/p/50412485.