1.除法:/
python3
44/100
0.44
python2
44/100
0
我要计算上10万条数据,结果全都是假数据
2.将目标数据格式化成字符串:str()
python3
str(变量)
"变量"
不管你是结构化数据比如:元祖,列表,字典,等等等,还是python基本数据类型,都没毛病
python2
str(变量)
“很多可能”
如果变量是基本数据类型,那没什么毛病,但是如果是结构化数据,那问题打了,结构内的元素全部变成了unicode编码,import sys,#coding:utf-8都是解决不了的,然后,接下来,就很难接下来了
3.中文识别与运算:
python3:
中文直接写就行了,没有任何毛病
python2
import sys
sys.reload(sys)
sys.setdefaultencoding('utf-8')
"#coding:utf-8
u"汉字"
这些都要添加上去,烦的一逼
4.url编码:
python3
from urllib.parse import quote
quote('测试')
python2
from urllib import quote
quote('测试')
5.编码,解码:encode(),decode()
python2
>>> a = '你好'
>>> a.decode('utf-8')
u'\u4f60\u597d'
>>>a.encode('utf-8')
'Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)'
>>> a = '积极'
>>> a
'\xe7\xa7\xaf\xe6\x9e\x81'
>>> print(type(a))
<type 'str'>
>>>
python3
>>> a
'积极'
>>> a.encode('utf-8')
b'\xe7\xa7\xaf\xe6\x9e\x81'
>>> a
'积极'
>>> a.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'
>>>
说明:
python2是不能够对汉字进行编码的(encode()),但是python是可以的
python2可以对汉字进行解码(decode()),但是python3不行
根源在于:python2汉字存在的方式是字符串类型的utf-8二进制码的字符串类型,类似于这样:'\xe7\xa7\xaf\xe6\x9e\x81' ,我的是mac系统;
然而,python3里面是汉字就是汉字,就像这样:‘测试’
6.正则匹配问题:re
从mongodb里面提取数据,需要对数据进行过滤,转化格式,用到re匹配,python3没有任何毛病,但是:
一万个曹尼玛,试过千万种方法,搞了我几个小时,最后,想想mongodb里面保存的默认编码是unicode,那我在正则规则字符串前面加一个u试试看。
卧槽
卧槽
居然成功,
心累啊,
print(date)
date = re.match(u'(\d+)月(\d+)日',date)
date = date.group(1)+'-' +date.group(2)
网友评论