本人也是菜鸟程序员,刚开始了解到一些皮毛,愿意与大家分享,也希望大家指正。下面正文

1.git使用——merge冲突

遇到的问题:在开发完ocr想合到master分支的时候发现合不了,因为其他分支向master分支提交了新的代码,那这种情况应该怎么办呢?

解决方法:

1. 先用git merge master命令把master分支合并到你的分支上。

2. git 会提示有冲突的文件,并用<<<<<<

3. commit刚才的改动,push到自己分支。

4. 最后把当前分支merge到master就可以了。

2.正则使用——中文问题

遇到的问题:要把一条日志拆分成多个字段,存到mysql表里,发现中文不能写成规则的形式,只能用具体的汉字。

解决方法:刚开始一直在考虑怎么才能用汉字正则呢,查了很多资料,都说不能用中文写正则表达,可是我的日志已经打好了,而且我的本意就是想输出中文的日志,不想改成英文的。最后,我发现可以先利用空格将每行拆成几部分,然后在每个部分里用标记分类的中文提示词以及字符长度写成正则,就可以完美地提取每一部分了。当然回头再来看这个问题,如果一开始就想到要拆分的话,那应该在生成日志的时候就想好用特殊的文字或者字符将想要的部分包裹起来,这样在正则的时候就高效很多了。

3.Mysql使用

遇到的问题:我想获得文章每天的过审率,也就是用每天过审的文章除以每天文章总量,这里面就遇到了两个问题,(1)时间ctime用的是时间戳,那我怎么按天计算呢?(2)按天统计出来了,那怎么得到两个数的商呢,还要按天对齐(3)我想要每天运行的时候都用前一天的pt,怎么自动生成呢?

解决方法:

(1)针对第一个问题,要用到from_unixtime函数,from_unixtime(ctime,'yyyy-MM-dd’)是用来把Unix时间戳转换成日期字符串,这样得到的结果就是按天的了。

(2)针对第二个问题,就要用到join操作了,用两个查询的天来join,代码如下:

`select t1.d, t1.cnt / t2.cnt `

`from `

`(SELECT count(distinct feed_content_id)*1.0 as cnt,from_unixtime(ctime,'yyyy-MM-dd') as d `

`FROM 表1 `

`WHERE pt = date_format(date_add(current_date(),-1),'yyyyMMdd000000') `

`and from_unixtime(ctime,'yyyy-MM-dd') >= '2019-01-01' `

`and status=3`

`group by from_unixtime(ctime,'yyyy-MM-dd') `

`order by from_unixtime(ctime,'yyyy-MM-dd') asc) as t1 `

`join `

`(SELECT count(distinct feed_content_id) as cnt,from_unixtime(ctime,'yyyy-MM-dd') as d FROM 表1`

`WHERE pt = date_format(date_add(current_date(),-1),'yyyyMMdd000000') `

`and from_unixtime(ctime,'yyyy-MM-dd') >= '2019-01-01' `

`and (status=2 or status=3) `

`group by from_unixtime(ctime,'yyyy-MM-dd') `

`order by from_unixtime(ctime,'yyyy-MM-dd') asc) as t2 `

`on t1.d = t2.d `

`order by t1.d `

(3)针对第三个问题就要用到data_format和date_add两个函数,具体代码为

`date_format(date_add(current_date(),-1),'yyyyMMdd000000')`

这里的current_date()表示的当前日期,date_add()表示给第一个参数前后移动几天,第二个参数是-1,也就是昨天,最后把这个日志转换成pt的格式’yyyyMMdd000000‘就可以自动计算出昨天的pt了。

两个报错信息的解决

1. 'NoneType' object is not iterable。

说明可能某一个循环内的内容是空的,比如for i in data:中的data是空的,所以看到这个报错的时候应该先去找有循环的地方。

2. 'Logger' object is not callable

我理解这个应该属于函数调用方式不对,所以遇到这个报错应该去查函数调用是不是哪里写错了。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐