首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将str转换的字节文字转换回str

无法将str转换的字节文字转换回str
EN

Stack Overflow用户
提问于 2020-02-13 05:30:35
回答 2查看 30关注 0票数 0

我有一个字节字面量,我将它转换为一个字符串:

代码语言:javascript
复制
hi = str(b'h\ni')

没有问题。它的类型是str

代码语言:javascript
复制
print(type(hi))        # <class 'str'>

当我打印它时,它打印为字节字面量。这对我来说很奇怪,因为我认为我已经将字节字面量转换为字符串:

代码语言:javascript
复制
print(hi)              # b'hi'

如果我将它转换为一个字符串,那么我应该能够对\n进行拆分

代码语言:javascript
复制
print(hi.split("\n"))  # ["b'h\\ni'"]

这很奇怪,我期望print(hi.split("\n"))返回一个包含字符串h和字符串i的列表。

在将hi转换为字符串后,是否有可能将其恢复为正常的、可打印的、可拆分的字符串?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-13 05:38:34

str得到一个友好的、人类可读的对象表示。在本例中,它是bytes对象的一个可读形式。你想解码而不是

代码语言:javascript
复制
>>> hi = b'h\ni'.decode('ascii')
>>> hi
'h\ni'
>>> type(hi)
<class 'str'>
票数 3
EN

Stack Overflow用户

发布于 2020-02-13 05:38:59

你的第一行是错误的一步。您需要将bytes解码为str

代码语言:javascript
复制
bi = b'h\ni'

sbi = bi.decode()

print(sbi, len(sbi))

print(sbi.split("\n"))

输出:

代码语言:javascript
复制
h
i 3
['h', 'i']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60197174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档