碎片化总结

把自己日常工作中遇到的问题随手丢到这里,以便之后查阅,或者需要的时候总结成文

技术

1.postgres主键自增

https://zhiwei.li/text/2012/02/15/postgresql%E4%B8%BB%E9%94%AE%E8%87%AA%E5%A2%9E/

数据类型为 SERIAL

2.服务器上vim查看中文乱码

参考

http://www.cnblogs.com/joeyupdo/archive/2013/03/03/2941737.html
http://www.jianshu.com/p/Rww1Tp
https://www.zhihu.com/question/22363620

在 ~/.vimrc 中加入

set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

3.url中文解析

参考

http://www.cnblogs.com/stemon/p/6602185.html

Python 下的解法(Python 3)

使用 urllib.parse.unquote 即可

>>> import urllib.parse
>>> urllib.parse.unquote('%E9%93%B8%E9%95%B0%E9%BE%99')
'铸镰龙'

4.大文件缓存

参考:

https://chenqx.github.io/2014/10/29/Python-fastest-way-to-read-a-large-file/

虽然没用上……

5.读取tar和zip

tar: https://docs.python.org/3/library/tarfile.html

zip: https://docs.python.org/3/library/zipfile.html

6.python re

(?P<regex_name>{regex}) 捕捉 {regex} 所代表的正则表达式所获取的对象,命名为 regex_name,方便使用,如:

import re
pattern = 'baidu_(?<part>.+)_info'
items = re.search(pattern, 'baidu_baike_info')
item = items.group('part')  # assert item == 'baike'

https://docs.python.org/3/howto/regex.html

7.不可见字符导致数据入库失败

类似这样,要写入的文本:

  • 看到的字符:我是一个简书作者
  • 实际的字符串:"我是一个\x00简书作者"

其中的十六进制空字符 \x00 不可见,但要入库则会报错。

简单的做法就是用字符串的 replace 方法处理掉这些东西。据 xy 说还有用字符集过滤掉的方式,没试过,之后可尝试

8.logging配置:日志分流(重定向分流)

[loggers]
keys=root

[handlers]
keys=infoHandler,warningHandler

[logger_root]
level=DEBUG
handlers=infoHandler,warningHandler

[handler_infoHandler]
class=StreamHandler
level=INFO
formatter=simpleFormatter
args=(sys.stdout,)

[handler_warningHandler]
class=StreamHandler
level=WARNING
formatter=simpleFormatter
args=(sys.stderr,)

[formatters]
keys=simpleFormatter

[formatter_simpleFormatter]
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s
datefmt=%a, %d %b %Y %H:%M:%S

9.SQL查询某个字段包含已知字符串

https://zhidao.baidu.com/question/193581250.html

SELECT * FROM some_table WHERE spec_column = '%已知的字符串%';

10.SQL LIMIT OFFSET 用法

https://www.postgresql.org/docs/8.2/static/queries-limit.html

SELECT * FROM some_table WHERE cond LIMIT 100 OFFSET 2;

上面这句的意思是:从表格 some_table 中取出满足 cond 的记录,从第 2+1 条开始查找,查找 100 条

11.SQL排序

http://www.w3school.com.cn/sql/sql_orderby.asp

使用 ORDER BY colmn,来根据名为 column 的列的取值排列

使用 DESC 逆序

12.SQL JOIN

分为INNER JOIN 和 (LEFT/RIGHT) OUTER JOIN
前者要求联结的多张表中键值一定要存在;后者则允许某些键值是不存在的

13.SQL 中取出的数值类型与定义有关,不可想当然认为一定是字符串。例如一个典型的 queryid 有时定义为 bigint,但是看起来就像一个全是数字的长字符串,于是本来想匹配已知的 queryid 来进行debug,用了 if queryid == '123',但已知没能进入 If 条件。后来在想,既然内容都有,但却对不上,拿是不是数值类型不匹配?打印 type 出来,发现都是 int,于是就明白了。

14.原始数值存在,但输出csv却为空。如果用的是 Pandas 的 to_csv,可以注意一下,提供的 columns 与打印的 dict keys 是否一致(一一核对)

15.tornado实现下载文件的方法

http://yobin.sinaapp.com/topic/2923/Tornado%E7%9B%B4%E6%8E%A5%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%E7%9A%84%E6%96%B9%E6%B3%95
https://blog.bbzhh.com/index.php/archives/52.html
https://gist.github.com/alejandrobernardis/1790864
https://en.wikipedia.org/wiki/MIME#Content-Disposition
https://blog.robotshell.org/2012/deal-with-http-header-encoding-for-file-download/comment-page-1/

关键部分

    self.set_header ('Content-Type', 'application/octet-stream')
    self.set_header ('Content-Disposition', 'attachment; filename='+filename)
    #读取的模式需要根据实际情况进行修改
    with open(filename, 'rb') as f:
        while True:
            data = f.read(buf_size)
            if not data:
                break
            self.write(data)
    #记得有finish哦
    self.finish()

注意必须 finish,否则无法下载

16.命令行中打不出中文,怎么办?(ubuntu)

http://forum.ubuntu.com.cn/viewtopic.php?f=77&t=277959

命令行中运行

sudo  dpkg-reconfigure locales

然后选择

en_US.UTF-8
zh_CN.GB2312
zh_CN.GB18030
zh_CN.UTF-8
zh_CN.GBK

17.pandas合并,drop

merge: https://pandas.pydata.org/pandas-docs/stable/merging.html

drop: https://stackoverflow.com/questions/14661701/how-to-drop-a-list-of-rows-from-pandas-dataframe

17.crontab 命令中,用 source 会导致命令无法执行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,294评论 6 428
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,099评论 18 139
  • 我有个朋友,女,多年前梦想成真,在所有人羡慕的眼光里打入某喉舌级别电视台做编导。姑娘上学时是闻名学区的才女,信心满...
    泡咖啡的狐阅读 138评论 4 2
  • 故事还是自己的最虐
    窟窿怪阅读 197评论 0 0
  • 不称为风景的山水, 雀鸟叫得动人得很, 我学它们叫, 文章也写不下了……
    青衫湿旧阅读 276评论 11 18