Data Downloader
背景
有时候需要从数据库中把数据导出来查看,可以在编辑器中直接拷出来或者导出来。
又或者像 weekly/monthly 的数据,我偶尔导一次,不想再打开 sqldeveloper 去操作 Oracle,所以就写了类似下面的工具。
有时候需要从数据库中把数据导出来查看,可以在编辑器中直接拷出来或者导出来。
又或者像 weekly/monthly 的数据,我偶尔导一次,不想再打开 sqldeveloper 去操作 Oracle,所以就写了类似下面的工具。
这两天SRD这边有文件中存在乱码,导致那一行数据插入失败。
下面是我晚上在家里电脑重现的时候信息,所以是中文的:
1 | pyodbc.Error: ('HY090', '[HY090] [Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度 (0) (SQLBindParameter)') |
我一开始以为是这列数据的字符串长度过长,有1万多个字符,但是我用别的值试了一下,是没有问题的。
然后我尝试着使用print输出来看一下,竟然直接error了。
下面是例子:
1 | text = "you are right \udef6 thanks" |
又是 一年的末尾,冷热交替,雨下个不停,今天稍稍停歇。
今天是冬至,包了一些饺子,韭菜鸡蛋馅的。试着做肉圆,但不是很成功。
今年过的很“困惑”,不是很顺心。我一直在反思,到底是哪里的问题。
来 PXO 快近一年。刚转组的那一段时间,特别的不适应,很困惑,想不通。
我是谁?
我在哪里?
我在干什么?
在工作中有需要从 comment 中提取所需要的值,是通过前缀来判断的,由于注释是人为输入的,所以很多时候会有一些拼写错误。
目前是通过写死前缀的字符串依次遍历来达到目的。
比如我们要的是 as of date mm/dd/yyyy,但也想要接受 as of data mm/dd/yyyy 那这样的话,就可以兼容许多拼写的错误。
字符串的相似性比较应用场合很多,像拼写纠错、文本去重、上下文相似性等。
评价字符串相似度最常见的办法就是:把一个字符串通过插入、删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这种就是编辑距离(edit distance)度量方法,也称为Levenshtein 距离。
海明距离是编辑距离的一种特殊情况,只计算等长情况下替换操作的编辑次数,只能应用于两个等长字符串间的距离度量。
其他常用的度量方法还有 Jaccard distance、J-W 距离(Jaro–Winkler distance)、余弦相似性(cosine similarity)、欧氏距离(Euclidean distance)等。
最近写了一个脚本,用 openpyxl 从 sql server 数据库中读取数据,使用 template 文件,将数据填充进去,生成最后的 daily report。
使用 openpyxl 来操作 excel,很方便,但发现当要写入大量数据的时候,时间非常慢,而且非常占内存。
最直接的原因是 openpyxl 会将读写过的 cell 都加载在内存中方便后面 update,不会释放这些 cell 而会一直驻留在内存中。
所以如果单纯写的话建议使用 xlrd,而且 pandas 有 to_csv/to_excel 这样的直接的方法。
但是因为我需要使用模板,在研究后发现 openpyxl 有 read_only/write_only 的模式,可以满足我的需求。
(一定要保证安装了 lxml 库,不然就算使用 write_only 模式,也一样会点用大量占存。)
Note:针对 office2007 以后的版本,xlsx 文件上限行数大约为 100 多万条的样子。
最近的项目会根据一些数据的值来得到一定的结果,用户原来使用 python 直接生成 excel 文件,我们相当于移植到数据库中,使用 SP 去做业务逻辑。
所以理论上最后的结果需要一致,之前没有做全部数据的对比,这次相关 features 由我在改动,所以无论如何还是要保证数据能对比上,所以就写了相关的脚本来处理。
今天手动给用户提供了 Report,其中需要对 excel 中的数据与数据库中的进行对比。数据文件不少,我要一个个打开去数,真的很费时间。
想要写一个小脚本,但发现没那么快,还是先手动给做了,写一个还是挺快的。
最近从物华搬到了政苑B区,就在银泰的边上,房租果断的长了一些。因为是年付,所以优惠了些,还能接受,不过来年就不知道还有没有优惠了。
还好有XM帮忙收拾,周末的时间就弄好了。如果是我自己一个人的话,很多东西都不知道要塞在袋子里多久才会收拾出来,哈哈哈。
搬家是真的折腾。原来的物化不过也只住了一年而已。被迫的搬家是租房最大的痛点之一。