Python2 和 Python 3 的語(yǔ)法還是有很多區(qū)別的
比如說(shuō)python2中的 httplib 在python3.5需要怎么改
python3把httplib改了名字椎椰,對(duì)應(yīng)的庫(kù)是http.client
1、包用 import 導(dǎo)入時(shí)可以帶出來(lái)沾鳄,但是和別的導(dǎo)入的庫(kù)格式是不一樣的(http.client 是帶框顯示的)
運(yùn)行代碼時(shí)提示 'http' is not a package
原因分析:文件名與包名重名了
解決辦法:對(duì)文件名重命名
2俭识、執(zhí)行該文件( httprequest )時(shí)調(diào)用上次的類的方法有錯(cuò)誤,單獨(dú)執(zhí)行上周的函數(shù)是可以正常運(yùn)行的
錯(cuò)誤信息
selectone() missing 1 required positional argument: 'condition'
原因分析:實(shí)例化不對(duì)(實(shí)例化數(shù)據(jù)庫(kù)操作)
仔細(xì)檢查發(fā)現(xiàn)上圖中 實(shí)例化mysql 處理類 缺少括號(hào)
3洞渔、TypeError: 'NoneType' object is not subscriptable
原因分析:表創(chuàng)建后沒(méi)有插入數(shù)據(jù)套媚,是一張空表
一不小心,導(dǎo)致變量是空值NoneType而導(dǎo)致此錯(cuò)誤的
解決辦法很簡(jiǎn)單磁椒,確保你所使用的(字典)變量堤瘤,里面包含了正確的(鍵)值。(表中插入數(shù)據(jù))
4浆熔、AttributeError: 'module' object has no attribute 'xxx'
AttributeError:嘗試訪問(wèn)未知的對(duì)象屬性
原因分析:函數(shù)調(diào)用錯(cuò)誤
解決辦法:查看源代碼中定義的函數(shù)本辐,與之匹配
5、TypeError("'int' object is not iterable")
修改字段 header_interface 的值為文本格式后繼續(xù)報(bào)錯(cuò)(詳見(jiàn)第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
原因分析: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)查詢出來(lái)的字段和參數(shù)傳的字段不一樣斑唬,所以報(bào)錯(cuò)了