Python 接口測(cè)試練習(xí)(天氣預(yù)報(bào))

利用網(wǎng)上現(xiàn)成的的接口,用python練習(xí)了下

(又碰到了中文編碼問題了:獲取的頁(yè)面源碼 編碼就是整不成中文)

天氣查詢的接口

圖片.png

此處選擇的是 getSupportCity(獲取支持的城市),是一個(gè)查看系統(tǒng)支持哪些城市的接口方法。

進(jìn)入頁(yè)面后滾動(dòng)到最下面看到如下圖的內(nèi)容
先來看看GET,上面是請(qǐng)求,下面是服務(wù)器的返回內(nèi)容。

GET 和POST 請(qǐng)求.png

寫好python代碼后,運(yùn)行發(fā)現(xiàn)參數(shù)輸入all 或者 不輸 是OK的,輸入中文城市就顯示不了,中文依舊是bytes類型的,我用 str 進(jìn)行了轉(zhuǎn)換

# -*- coding: utf-8 -*-
# __author__ = 'Carina'

from urllib.request import urlopen
from urllib.request import Request


url = 'http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getSupportCity?byProvinceName='
print(type(url))    # 輸出URL的類型
string = str('上海'.encode('utf-8'))
print(type(string))   # 輸出參數(shù)的類型
url_all = url + string
print(url_all)   # 輸出拼接后的URL
req = Request(url_all)    # 創(chuàng)建一個(gè)Request對(duì)象 并賦給變量req
data = urlopen(url_all).readlines()   #  打開網(wǎng)址并讀取數(shù)據(jù)
print(type(data))    
print(data)
顯示不了中文.png

接下來說下所遭遇的坑

1、如參數(shù) string為中文,不進(jìn)行str轉(zhuǎn)換的話,運(yùn)行會(huì)報(bào)錯(cuò)(類型不一樣的變量不能進(jìn)行拼接)

類型不一樣的變量不能進(jìn)行拼接.png

2、參數(shù) string為中文,不進(jìn)行encode轉(zhuǎn)換,運(yùn)行報(bào)錯(cuò)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 70-71: ordinal not in range(128)

尋求度娘,說在文件頭部加入以下代碼

import sys
reload(sys)
sys.setdefaultencoding('utf-8')()

但這方法不適用于3.X,所以沒用:Python3 已經(jīng)取消了str, 讓所有的字符串都是 unicode

寫在最后的話

如果你用的也是3,知道如何能顯示中文的話,可以留言或者直接簡(jiǎn)信也可以,萬分感謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 字符集和編碼簡(jiǎn)介 在編程中常??梢砸姷礁鞣N字符集和編碼,包括ASCII,MBCS,Unicode等字符集。確切的說...
    蘭山小亭閱讀 9,080評(píng)論 0 13
  • http://python.jobbole.com/85231/ 關(guān)于專業(yè)技能寫完項(xiàng)目接著寫寫一名3年工作經(jīng)驗(yàn)的J...
    燕京博士閱讀 7,802評(píng)論 1 118
  • 個(gè)人筆記,方便自己查閱使用 Py.LangSpec.Contents Refs Built-in Closure ...
    freenik閱讀 67,947評(píng)論 0 5
  • 引言 在這里我假設(shè)你已經(jīng)看完了一篇Python教程,基本熟悉了Python的結(jié)構(gòu)和語(yǔ)法,在命令行下的Python互...
    Programmer客棧閱讀 65,193評(píng)論 0 17
  • 幾個(gè)基本概念 bit二進(jìn)制位, 是計(jì)算機(jī)內(nèi)部數(shù)據(jù)儲(chǔ)存的最小單位,11010100是一個(gè)8位二進(jìn)制數(shù)。一個(gè)二進(jìn)制位只...
    西電大俠閱讀 3,706評(píng)論 1 8

友情鏈接更多精彩內(nèi)容