Python 3はアリクラウドインタフェースを呼び出し、ModuleNotFoundError:No module named'urllib 2'を解決する方法を再構築します.


1.公式のPython 3では運転できないので、変更しなければなりません
以下は公式pythonインタフェースのサンプルで、動作時にModuleNotFoundErrorが表示されます.No module named'urllib 2'
import urllib, urllib2, sys
host = 'http://freecityid.market.alicloudapi.com'
path = '/whapi/json/alicityweather/briefforecast3days'
method = 'POST'
appcode = '    AppCode'
querys = ''
bodys = {}
url = host + path

bodys['cityId'] = '''2'''
bodys['token'] = '''677282c2f1b3d718152c4e25ed434bc4'''
post_data = urllib.urlencode(bodys)
request = urllib2.Request(url, post_data)
request.add_header('Authorization', 'APPCODE ' + appcode)
//  API   ,      Content-Type
request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
response = urllib2.urlopen(request)
content = response.read()
if (content):
    print(content)

どのように処理しますか?python 3はurllib 2を統合しているため、実行可能なコードを変更するには以下のようにします.注:以下のappcodeは自分のappcodeに変更し、ない友达はここで申請することができます.https://market.aliyun.com/products/57096001/cmapi023656.html?spm=5176.2020520132.101.2.6d727218rZN0JX#sku=yuncode1765600000
import urllib.request, urllib.parse
host = 'http://freecityid.market.alicloudapi.com'
path = '/whapi/json/alicityweather/briefforecast3days'
method = 'POST'
appcode = '  AppCode '
querys = ''
bodys = {}
url = host + path
bodys['cityId'] = '''2'''
bodys['token'] = '''677282c2f1b3d718152c4e25ed434bc4'''
post_data = urllib.parse.urlencode(bodys).encode(encoding='utf-8')
request = urllib.request.Request(url, post_data)
request.add_header('Authorization', 'APPCODE ' + appcode)
# //  API   ,      Content-Type
request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
response = urllib.request.urlopen(request)
content = str(response.read(), 'utf-8')
if (content):
    print(content)

最終版を見て、修正した簡単な数行のコードは完成します
import requests
cityId = '2'
rep = 'http://freecityid.market.alicloudapi.com/whapi/json/alicityweather/briefforecast3days'
data = {'cityId': cityId, }
#     appCode         
ret = requests.post(rep, headers={'Authorization': 'APPCODE {}'.format('  AppCode ')}, data=data)
ret.encoding = 'utf-8'

print(ret.json())

ここで最後の成果ですPython3调用阿里云接口,重新方法,解决ModuleNotFoundError: No module named 'urllib2'_第1张图片