• 将[{},{}]转为dict

    经常遇到一种需求,需要把从数据库取出的数据,转为dict对象([{}, {},...]-->dict)。

    rs = [{"user_id":111, "name":"abc"}, {"user_id":123, "name":"edf"}]
    print dict(map(lambda r:[r["user_id"], r], rs))
    >>{111: {'user_id': 111, 'name': 'abc'}, 123: {'user_id': 123, 'name': 'edf'}}
    

    上面看起来比较啰嗦,换一种写法

    print dict([r["user_id"], r] for r in rs)
    

    更简洁的写法

    {r['user_id'] : r for r in rs}
    
  • IBUS-WARNING Process Key Event failed Timeout was reached

    在gvim中ibus敲字时,偶尔会在n秒之后才显示到屏幕,反应死慢。控制台会看到下面的错误信息.

    (gvim:77687) IBUS-WARNING  Process Key Event failed Timeout was reached。
    

    暂时无法搞清具体原因,所以用重启ibus的笨办法解决。

    • 杀死ibus进程
    ps -ef |grep ibus-daemon
    

    找到进程,然后kill掉

    • 启动 ibus
    ibus-daemon -d -x -r
    

    -d 作为后台程序运行

    -x 执行ibus XIM服务

    -r 替换老进程