谢谢你留下时光匆匆
Python Notion API 开发总结

Notion 是当下一款火热的 All in One 软件,其多样且高度自定义的 block,与主打的完整全面的 database 功能,满足各种用户各类使用场景的需要,文档,知识维基、个人笔记、个人任务列表等都可以很好得到支持。除了本身优秀的产品逻辑,Notion 还提供了api接口,使得用户通过代码完成相关内容操作,如 database 的增删查改等。我自己也开发了许多脚本,调用这些 api,作为自己个人工作流的一部分,如检查 todo list 中的任务每天是否按时完成,查询财务清单中每月每个类别的花费开支是多少等。这些脚本是用 Python 开发,主要用到了这个notion-client库。本文总结了这些 Notion 脚本开发过程中常用的代码片段与自己封装的一些 helper 函数,方便后来有需要进行 Notion api 调用开发的开发者参考。


Python 实现 Java Stream 接口

之前开发过一些搜索策略的Java代码,很大部分使用了Stream API对列表中元素进行过滤、排序等操作。后面切换到Python做一些数据分析工作时,有时也会用到类似的逻辑,但是Python并没有对应的Stream API,习惯了这套写法后,再用一些原生基础的列表函数操作会稍微有一些不习惯。后面抽空找时间简单写了一套 Python Stream API,方便有对应需求时候使用。这篇文章对此做一个简单的介绍,并附上相关代码。


Mermaid 快速参考指南

Mermaid是一门为绘制流程图设计的语言,只需输入简洁的代码,通过渲染就能生成流程图。相较于draw.io等绘图软件,在制作复杂流程图时更为高效,可以从各种错综复杂的节点和连线中解放出来。在实际的工作场景中,我发现Mermaid特别适合在熟悉工程作业上使用,在我接手他人工作,尤其大数据作业梳理数据流、表关系上下游时,用Mermaid做笔记可以更快掌握整个流程。

这篇文章对Mermaid主要语法进行归纳总结,这里只记录满足日常工作需要的流程图(即flowchart)的写法,没有包括其它像实体图等的写法,其它图类型写法可以参考Mermaid官方文档


使用AutoHotkey置顶Windows系统的窗口

公司的电脑是Windows的,在平常办公过程中,有时会遇到需要将某个窗口置顶,显示在屏幕最前方,打开其它窗口时不会被遮挡住。例如,需要将记录了提醒信息的便签置顶,需要将参考的图片/网页置顶等。自己查了相关资料,发现可以使用AutoHotkey实现任意窗口的置顶,这里简单记录一下脚本配置。


有趣实用的网站软件(六)

自己是一个很喜欢尝试新软件、探索新网站的人,这个系列文章,把自己觉得有趣的玩意,或者能提高效率的工具汇总起来,分享给大家。

本期关键词:设计,阅读,工具


Hugo主题开发系列丨添加分页导航栏

在进行Hugo主题开发时,首页部分往往会用来呈现博客文章的摘要,为了避免文章太多而造成首页显示内容过长的问题,我们会将文章分页显示,分页显示离不开分页导航栏的设计与开发。前不久自己在开发Moment主题的时候,开发了一个简单的分页导航栏,这里做一个简单的记录,方便后来的主题开发者参考。


Pandas链式代码书写

Pandas 是Python中最常用的数据分析包,不论是在学校完成课程作业与项目,还是在职场数据相关工作中,都大概率会有所接触 Pandas。绝大部分人学习接触Pandas时以及后续使用Pandas所用的命令都是 inplace 类型的计算,例如添加列使用 df['new_col'] = df['old_col'] + 1 ,排序使用 df.sort_values('sort_by_col', inplace=True),这些计算直接在原表上操作,代码书写起来比较符合直觉。但在一些链路较长、逻辑复杂、分支较多的数据清洗/分析任务上,这种写法可能出现一些潜在的问题,加大我们代码书写的难度。除了inplace的操作,Pandas所提供的api支持链式代码书写,可以大大增加我们的代码质量,帮助分析师从代码实现的难度中解放出来。本文后面的内容对Pandas链式书写的优势以及相关写法进行一些介绍。


用Python进行SQL练习的简单方法

在进行数据分析/数据科学方向上求职时,SQL题目的练习是不可或缺的。对于自己所写的 SQL 代码,最好的验证方式是跑出代码的数据结果。常见的刷题平台(如牛客网,leetcode)都支持这样的功能。但不在这些刷题平台的SQL题目,想要去运行自己所写的答案,就需要搭建一个能运行 SQL 的环境(如本地MySQL),这对于非技术背景的同学可能会比较困难。我最近找到一个简单的方案,只要能运行Python,安装相关包后,就能运行 SQL、进行 SQL 练习。本文该方案进行介绍。


有趣实用的网站软件(五)

自己是一个很喜欢尝试新软件、探索新网站的人,这个系列文章,把自己觉得有趣的玩意,或者能提高效率的工具汇总起来,分享给大家。

本期关键词:音乐,开发,效率,阅读


记 Python itertools.groupby 数据为空的坑

在进行数据清洗时候,遇到这样一个需求,抽象后如下:

原数据为一个文本文件,文本按照问题和答案分行交替出现,一个问题后面可能会跟着多行答案,例如:

1
2
3
4
5
6
7
8
9
x = """
Q:1+1=?
A:2

Q:水果有哪些
A:苹果
A:香蕉
A:桔子
"""