我正在學習使用python3.3的python挑戰python,我在question eight。標記中有一個註釋,它提供了兩個輸出字節字符串的bz2壓縮的unicode字符串,一個用於用戶名,一個用於輸入密碼。還有一個鏈接,您需要輸入解壓縮的憑據。 一種方法輕鬆解決這僅僅是手動複製的字符串,並將其分配給兩個變量作爲字節串,然後只用了BZ2庫來解壓:Unicode字符串到字節字符串,而不添加反斜槓
>>>un=b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
>>>print(bz2.decompress(un).decode('utf-8'))
huge
但是,這不適合我,因爲我想要的通過運行我的python文件來回答。 我這樣的代碼:
>>>import bz2, re, requests
>>>url = requests.get('http://www.pythonchallenge.com/pc/def/integrity.html')
>>>un = re.findall(r'un: \'(.*)\'',url.text)[0]
>>>correct=b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
>>>print(un,un is correct,sep='\n')
b'BZh91AY&SYA\\xaf\\x82\\r\\x00\\x00\\x01\\x01\\x80\\x02\\xc0\\x02\\x00 \\x00!\\x9ah3M\\x07<]\\xc9\\x14\\xe1BA\\x06\\xbe\\x084'
False
的問題是,當它從unicode字符串轉換成字節串被添加的轉義反斜線,使其不能被BZ2模塊讀取。我已經嘗試了我所知道的一切,以及當我搜索時起牀的事情。
如何從unicode獲取它到字節,以便它不會被更改?
我還在測試,看看這是你實際的錯誤,但'is'不正確的操作,看看你是否已經正確地檢索到的內容。 '是'測試對象相等,而不是語義相等。 –
謝謝你的時間,你有什麼想法嗎?看來,它是不可能刪除或替換其中一個斜槓,我不知道如何分配一個Unicode字符串作爲字節字符串,而無需轉換它。感謝您對「is」陳述的評論。 – Jayus