python3相对于python2发生的变化

1.print 要带()
2.has_key 改成 in
3.filter 改成推导式:filter(lambda x: x['business_status'] == 0 and x['begin_date'] <= now, rows)改成 [x for x in rows if x['business_status'] == 0 and x['begin_date'] <= now]
4.reduce 移动至 funtools.reduce
5.long去除使用int
6.引入了 bytes,字符默认使用 unicode
7.form.items() 改乱了 list(form.items())
8.StringIO 改成 io.StringIO,引入了 io.BytesIO
9.bytes 字符串 decode('utf-8')转化为unicode, unicode字符串 encode('utf-8') 转化为bytes
10.basetring 改成str
11.dict.keys() 改成 list(dict.keys())
12. map(lambda x: x['employee_id'], result) 改成 [x['employee_id'] for x in result]

13.原始request   中接收到的参数改为bytes

14.sha1(temp_pass).hexdigest() 改成 sha1(temp_pass.encode('utf-8')).hexdigest()  传入参数变成了bytes

15.self.request.arguments['table'][0]   request.arguments 获取时不是原来的字符串,而是bytes类型,需要转换  to_unicode(self.request.arguments['table'][0])

16. a.decode('base64' 变更为  base64.b64decode(a), a.encode('base64') 变更为  base64.b64encode(a)

17.urllib.urlencode-->urllib.parse.urlencode,urllib.quote-->urllib.parse.quote  

18.self.set_header('Content-Disposition', "attachment; filename={}".format(url_escape(display_name)))   文件名称可能涉及到中文需要使用 url_escape编下码

19 读文件原来open(file_path) 改为open(file_path,"rb")

20.range

  Python2直接生成列表,Python3需要配合list方法使用

  Python3中range()方法生成的已经不是一个列表, 而是一个range的迭代器

posted @ 2021-02-19 18:03  书生_fox  阅读(62)  评论(0)    收藏  举报