Traceback (most recent call last): File "/home/shenjianlin/.local/lib/python3.4/site-packages/twisted/internet/defer.py", line 653, in _runCallbacks
current.result = callback(current.result, *args, **kw) File "/home/shenjianlin/my_project/Espider/Espider/pipelines/searchwebsitepipeline.py", line 37, in process_item
iconUrl=self.get_max_size_url(item['iconUrl']) File "/home/shenjianlin/my_project/Espider/Espider/pipelines/searchwebsitepipeline.py", line 18, in get_max_size_url
save_path = os.path.join("./image", hashlib.sha1(res.content)) File "/usr/lib64/python3.4/posixpath.py", line 79, in join
if b.startswith(sep):
AttributeError: '_hashlib.HASH' object has no attribute 'startswith'### 題目描述
2 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個贊
類型不正確.os.path.join
期待傳入一個字符串類型的參數(shù), 而你這里傳入了一個_hashlib.HASH
類型的對象.
>>> import hashlib>>> hashlib.sha1(b'this is plaintext') <sha1 HASH object @ 0x7f0a100539e0>
我估計(jì)你是想獲取HASH
的 16 進(jìn)制結(jié)果.可以用hexdigest
方法, 就像這樣:
>>> print(hashlib.sha1(b'this is plaintext').hexdigest())29487b3263304dba8c04fbe1169a8b8044e0bf8e
或者返回 Bytes 類型, 然后再轉(zhuǎn)碼(不推薦):
>>> print(hashlib.sha1(b'this is plaintext').digest()) b')H{2c0M\xba\x8c\x04\xfb\xe1\x16\x9a\x8b\x80D\xe0\xbf\x8e'
添加回答
舉報(bào)
0/150
提交
取消