有关Python的一些小技巧(一)

今天在工作的时候遇到了几个有关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()