小编Bry*_*Yao的帖子

Python:将原始字符串转换为字节字符串而不添加转义字符

我有一个字符串:

'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
Run Code Online (Sandbox Code Playgroud)

而且我要:

b'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
Run Code Online (Sandbox Code Playgroud)

但我不断得到:

b'BZh91AY&SYA\\xaf\\x82\\r\\x00\\x00\\x01\\x01\\x80\\x02\\xc0\\x02\\x00 \\x00!\\x9ah3M\\x07<]\\xc9\\x14\\xe1BA\\x06\\xbe\\x084'
Run Code Online (Sandbox Code Playgroud)

语境

我从网页上刮下一个字符串并将其存储在变量中un。现在我想用 BZip2 解压它:

bz2.decompress(un)
Run Code Online (Sandbox Code Playgroud)

但是,由于un是一个str对象,我收到此错误:

TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

因此,我需要在un不将单个反斜杠更改为转义反斜杠的情况下转换为类似字节的对象。

编辑1: 感谢您的所有帮助!@wim 我现在明白你的意思了,但我不知道如何从我的网页抓取方法中检索一个类似字节的对象:

r = requests.get('http://www.pythonchallenge.com/pc/def/integrity.html')

doc = html.fromstring(r.content)
comment = doc.xpath('//comment()')[0].text.split('\n')[1:3]

pattern = re.compile("[a-z]{2}: '(.+)'")

un = re.search(pattern, comment[0]).group(1)
Run Code Online (Sandbox Code Playgroud)

该包是我使用的是requestslxml.htmlre,和bz2

再次,我的目标是解压un使用bz2,但我有困难,从我webscraping过程中得到一个字节状物体。

任何指针?

python lxml python-3.x lxml.html bz2

5
推荐指数
0
解决办法
2410
查看次数

标签 统计

bz2 ×1

lxml ×1

lxml.html ×1

python ×1

python-3.x ×1