今天在工作的时候遇到了几个有关Python的小问题,记录于此。
- python 过滤中文、英文标点特殊符号
在工作中经常遇到很多特殊的标点符号,像中文标点符号,英文标点符号。英文的标点符号比较容易过滤,而过滤中文的标点符号较麻烦。下面是从邮件中过滤特殊符号的方式供参考。
下面是一封垃圾邮件的过滤实例:
"想做/ 兼_职/学生_/ 的 、加,我Q: 1 5. 8 0. !!?? 8 6 。0. 2。 3 有,惊,喜,哦"
邮件中的“!?。、”都是中文的,而“/.”是英文的
下面是过滤方式:
<span style="font-size:18px;">#-*-coding:utf-8-*-
import re
temp = "想做/ 兼_职/学生_/ 的 、加,我Q: 1 5. 8 0. !!?? 8 6 。0. 2。 3 有,惊,喜,哦"
temp = temp.decode("utf8")
string = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*()]+".decode("utf8"), "".decode("utf8"),temp)
print string
</span>
过滤后的效果如下:
<span style="font-size:18px;">想做兼职学生的加我Q158086023有惊喜哦</span>
处理成上述格式后就容易进行分词分析处理了。
- Python List 合并连接字符串的方法
比如下面一个list
binfo = ['lao','wang','python']
我们通过help方法得知,可以用string的join方法来解决。
下面我们通过空格来连接3个单词:
content = " ".join(binfo)
print content
结果是:
lao wang python
- ValueError: No JSON object could be decoded?此种异常的解决方案之一
第一次遇到这样的异常,实在不知道如何是好?进行了测试发现报错的json出没有问题,而且每次出现异常 的位置不一样
于是我认为这样的问题可能是因为程序执行过快,所以很简单的解决办法是:
def deal_dealers_info(self):
province_list = self.get_province_list()
for province in province_list:
if province== None:
continue
province_name = province_list[province]
#print '1--' + province_name
#print '2--' + province
city_list = self.get_post_city_data(province)
for city in city_list:
print city_list[city]
print city
import time
time.sleep(1)#在此处将程序延迟一秒执行,就可以解决访问速度过快而造成的异常,里面的单位是秒,即1=1秒
self.get_post_dealers_data(province_name,city_list[city],city)
self.saver.commit()