1.查看python版本
import sys
v = sys.version
print(type(v))
print(v)
print(v[0])
3.5.6 |Anaconda, Inc.| (default, Aug 26 2018, 16:05:27) [MSC v.1900 64 bit (AMD64)]
3
2.str和bytes互相转换
bytes转为str类型
print(string)
print(string)
print(string)
str 转换为 bytes类型
print(b)
print(b)
注:str没有decode方法,如果调用str.decode会报错:
AttributeError: ‘str’ object has no attribute ‘decode’
3.从redis取数
python2中r.get()返回的是str类型,但在python3中r.get()返回的是bytes类型,如果切换环境时不做相应处理,可能会报各种错误,如 TypeError: Can’t convert ‘bytes’ object to str implicitly
解决:
如果需要得到str类型,可以通过decode方法转化为str类型。这样就增加了代码灵活性,使代码在python2和python3均适用。代码如下:
def request_data(mds, key):
version = sys.version_info
line = self.r.get(key)
if int(version[0]) == 3: # 如果是python3,则转化为字符串
line = line.decode()
if line is not None:
mds.append(line)