Я изучаю python, выполняя задачу python с помощью python3.3, и я нахожусь на 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
Проблема заключается в том, что, когда он переходит из Юникода строки в байтах строки вылетающему обратный слэш добавляется, так что она не может быть прочитана модулем BZ2. Я пробовал все, что знаю, и что встал, когда я искал.
Как получить его из unicode в байт, чтобы он не изменился?
Я до сих пор тестирование, чтобы увидеть, если это фактическая ошибка, но 'is' не является правильным оператором, чтобы увидеть, если вы правильно извлечь содержимое. 'is' тесты для равенства объектов, а не для семантического равенства. –
Спасибо за ваше время, вы придумали что-нибудь? Кажется, что невозможно удалить или заменить одну из косых черт, и я не знаю, как назначить строку юникода в виде байтовой строки без ее преобразования. Благодарим вас за комментарий к инструкции 'is'. – Jayus