Python系列五--發(fā)送HTTP請(qǐng)求,問題匯總

Python2 和 Python 3 的語(yǔ)法還是有很多區(qū)別的

比如說python2中的 httplib 在python3.5需要怎么改
python3把httplib改了名字,對(duì)應(yīng)的庫(kù)是http.client

1、包用 import 導(dǎo)入時(shí)可以帶出來,但是和別的導(dǎo)入的庫(kù)格式是不一樣的(http.client 是帶框顯示的)

import http.client.png

運(yùn)行代碼時(shí)提示 'http' is not a package

提示 **http** 不是一個(gè)包.png

原因分析:文件名與包名重名了
解決辦法:對(duì)文件名重命名

圖片.png


2、執(zhí)行該文件( httprequest )時(shí)調(diào)用上次的類的方法有錯(cuò)誤,單獨(dú)執(zhí)行上周的函數(shù)是可以正常運(yùn)行的

 錯(cuò)誤信息
 selectone() missing 1 required positional argument: 'condition'
調(diào)用上次的類的方法有錯(cuò)誤.png
文件單獨(dú)執(zhí)行正常運(yùn)行.png

原因分析:實(shí)例化不對(duì)(實(shí)例化數(shù)據(jù)庫(kù)操作)
仔細(xì)檢查發(fā)現(xiàn)上圖中 實(shí)例化mysql 處理類 缺少括號(hào)


3、TypeError: 'NoneType' object is not subscriptable

TypeError: 'NoneType' object is not subscriptable.png

原因分析:表創(chuàng)建后沒有插入數(shù)據(jù),是一張空表
一不小心,導(dǎo)致變量是空值NoneType而導(dǎo)致此錯(cuò)誤的

解決辦法很簡(jiǎn)單,確保你所使用的(字典)變量,里面包含了正確的(鍵)值。(表中插入數(shù)據(jù))


4、AttributeError: 'module' object has no attribute 'xxx'

AttributeError:嘗試訪問未知的對(duì)象屬性

AttributeError.png

原因分析:函數(shù)調(diào)用錯(cuò)誤
解決辦法:查看源代碼中定義的函數(shù),與之匹配


5、TypeError("'int' object is not iterable")

圖片.png

修改字段 header_interface 的值為文本格式后繼續(xù)報(bào)錯(cuò)(詳見第6點(diǎn)),真的是錯(cuò)誤不斷啊


6、json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

最后還是去修改字段的值,改成字典格式的

update case_weatherreport 
set header_interface='{"Accept-Encoding": "gzip, deflate","Accept-Language": "zh-CN"}' 
where id=1;

【總結(jié)】
折騰 json 的話,前提要了解json的語(yǔ)法和規(guī)則,其次才是用某種語(yǔ)言去處理json。

7、TypeError: tuple indices must be integers or slices, not str

TypeError: tuple indices must be integers or slices, not str.png

原因分析:sql 返回的是tuple,而不是dict,所以不能使用interface_params["key"]的語(yǔ)法

解決辦法:返回字典(dict)表示的記錄,就要設(shè)置cursorclass參數(shù)為 pymysql.cursors.DictCursor類
1)在調(diào)用connect方法建立連接時(shí)設(shè)置

 conn = pymysql.connect(host='localhost', port=3306, user='root',
                        passwd='123456', db='zyptest', charset='utf8', 
                        cursorclass=pymysql.cursors.DictCursor)

2)在創(chuàng)建游標(biāo)時(shí)設(shè)置

cur = conn.cursor(cursorclass=pymysql.cursors.DictCursor)


8、KeyError:請(qǐng)求一個(gè)不存在的字典關(guān)鍵字

根據(jù) keyerror 的定義去核對(duì)SQL語(yǔ)句的字段,發(fā)現(xiàn)查詢出來的字段和參數(shù)傳的字段不一樣,所以報(bào)錯(cuò)了

SQL搜索字段和傳參值不一致.png
最后編輯于
?著作權(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)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • 轉(zhuǎn)載,覺得這篇寫 SQLAlchemy Core,寫得非常不錯(cuò)。不過后續(xù)他沒寫SQLAlchemy ORM... ...
    非夢(mèng)nj閱讀 5,605評(píng)論 1 14
  • # 第一優(yōu)先級(jí)規(guī)則聲明: # 除了夢(mèng)境,每一個(gè)意識(shí)主進(jìn)程都必須與一個(gè)身體參與的機(jī)械進(jìn)程相匹配,否則結(jié)束意識(shí)主進(jìn)程。...
    李洞BarryLi閱讀 4,208評(píng)論 0 1
  • 《高效能人士的七個(gè)習(xí)慣》感悟(一) 緣由 最近在看《高效能人士的七個(gè)習(xí)慣》。一開始看這本書我是拒絕的,因?yàn)橐豢吹綍?..
    hoohack閱讀 2,779評(píng)論 0 4
  • 臨田英章
    liudazhong閱讀 177評(píng)論 0 1

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