Published onFebruary 19, 2023使用 sqlite-utils upsert 失败 TroubleshootingPythonTroubleshootingSQLite使用 sqlite-utils 进行数据插入时, upsert 方法可能因未满足非空约束而失败。插入时只提供主键值导致违反 NOT NULL 约束,因而插入失败但未反馈错误。SQLite 3.24.0 及以上版本支持 upsert 语法,建议使用该语法以避免此类问题。sqlite-utils 的 upsert 实现不符合 SQLite 的新特性,需注意其命名和实现方式。
Published onFebruary 18, 2023Python 字符串 DSL 巧计PythonDSLSQLite本文介绍了一种使用 SQLite 实现字符串 DSL 的方法,允许用户在字符串中动态渲染表达式,如获取当前日期和时间。通过定义 SQL 查询和解析表达式,用户可以方便地生成包含动态数据的字符串。示例代码展示了如何使用该方法来处理不同格式的字符串,并强调了这种方法相较于直接执行 Python 代码的安全性和友好性。
Published onJanuary 14, 2023Python 避免进程池空闲,实现单个任务(non-batch)立即出列入列PythonPool介绍了如何在Python中使用进程池实现单个任务的即时提交,而不是等待一批任务完成。通过示例代码,展示了如何初始化进程池并在任务完成后立即添加新任务,以提高进程池的利用效率。代码示例包括任务提交、执行和完成的过程。
Published onMarch 25, 2021BoostPost - Data Class 最佳(误)实践PythonData-Classes本文介绍了 BoostPost 库的设计与实现,旨在优化数据处理工作中的更新请求构建。通过示例展示了如何处理新旧数据的插入、更新和删除,强调了数据类的概念及其在 Python 中的应用。文章还探讨了逻辑删除和更新优先级等特殊场景,提供了扩展接口的实现思路,并总结了项目代码质量提升的重要性。
Published onJanuary 18, 2020一次改善既有代码的设计PythonData-Classes本文讨论了如何改善现有代码的设计,特别是在数据清洗过程中,通过封装业务逻辑来统一和规范化数据更新的处理。文章介绍了数据类的概念及其在Python中的实现,强调了兼容性和可扩展性的重要性,并提供了具体的代码示例,展示了如何使用数据类来简化数据处理和去重逻辑。最后,推荐了相关书籍以帮助提高代码质量。