當前系統使用的Python版本爲3.6.0.
運行一些網上下載的代碼時,由於代碼經常是數年前用Python 2.x 編寫的,一些函數用法上會出現變化,直接運行會發生報錯。
記錄一下今天見到的小問題:
1.Error ‘dict’ object has no attribute ‘iteritems’
Python3 中 字典的 iteritems 屬性被改名爲了 item
報錯信息 | 對應方法 |
---|---|
Error ‘dict’ object has no attribute ‘iteritems’ | 把dict.iteritems() 改成 dict.items() 即可 |
更多的,
dict.iterkeys() |
dict.itervalues() |
2.from pil import image 報錯 DLL load failed
pillow(PIL)報錯找不到DLL,更新庫可以解決
報錯信息 | 對應方法 |
---|---|
from pil import image 報錯 DLL load failed: 找不到指定的程序 | 我將pillow 從4.1.0升級到了4.2.1(最新),解決 |
出現這樣的錯誤原因還不是很理解,但與相關的庫文件安裝不全可能有關,所以升級了pillow,解決了問題。
3.TypeError: ‘dict_keys’ object does not support indexing
在python2中,key()方法返回的是一個列表;
而在python3中,其返回的是一個dict_keys對象;
所以我們使用 索引index ,取key()中的一個元素的時候,
在python3中,就不能直接使用,要使用list方法將dict_keys對象轉換成列表。
參考
簡單的講,用 list() 把報錯部分的 dict_keys() 對象變成 列表對象 ,就可以使用index索引了。