关于urllib从python2向pyhon3迁移的问题

背景

最近在调用聚合数据的短信API接口,原有的代码是python2,目前我所使用的python全部都在3上(因为mysql接口已经迁移到3),所以稍微爬了一下代码,做了迁移工作

步骤

  1. 首先要将导入的库做变换
#Python2
import json, urllib
from urllib import urlencode
#迁移至python3
import json,urllib.request
from urllib.parse import urlencode

2.内部代码也要做些更改

#Python2
    params = urlencode(params)
    if m =="GET":
        f = urllib.urlopen("%s?%s" % (url, params)):
            f = url.read()
    else:
        f = urllib.urlopen(url, params):
            f = url.read()
    content = f.read()
    res = json.loads(content)


#迁移至python3
    params = urlencode(params)
    if m =="GET":
        with urllib.request.urlopen("%s?%s" % (url, params)) as url:
            f = url.read()
    else:
        with urllib.request.urlopen(url, params) as url:
            f = url.read()
    content=f
    res = json.loads(content)

参考文献:
https://techoverflow.net/2015/02/08/fixing-importerror-cannot-import-name-urlencode-in-python3/
https://stackoverflow.com/questions/3969726/attributeerror-module-object-has-no-attribute-urlopen

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,491评论 19 139
  • Spark SQL, DataFrames and Datasets Guide Overview SQL Dat...
    草里有只羊阅读 18,443评论 0 85
  • 夜深人静的时候总是容易想得太多 思绪乱飞 杂七杂八的陈年旧事一股脑的涌出来在脑子里咆哮 皱着眉头 闭上眼睛向左侧卧...
    时势造佳董阅读 1,586评论 0 1
  • 夏天可以拿来冰镇喝的Swisse维C泡腾片 夏季空调吹太多,会导致: 寒气侵身,轻微脑涨,抵抗力天然下降 喉咙易干...
    JaneH05阅读 3,161评论 0 0
  • 敬畏—进入—体验—交给—持续 1,缺啥补啥,怕啥练啥; 2,一切为我所用,所用为团队家; 3,我想变,我要变,我...