迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python 中TypeError: decoding str is not supported 错误

作者:迹忆客 最近更新:2022/12/09 浏览次数:

当我们尝试多次将对象转换为字符串或在调用 str() 类时设置编码关键字参数而不提供字节对象时,会出现 Python“TypeError: decoding str is not supported”。

看下面的代码

# ⛔️ TypeError: decoding str is not supported
str('hello', str(123))

# ⛔️ TypeError: decoding str is not supported
str('abc', encoding='utf-8')

python TypeError- decoding str is not supported

第一个示例对 str() 函数进行了两次调用,一个嵌套在另一个中。在第二个示例中,我们在不提供有效字节对象的情况下设置了编码关键字参数。

我们只能在传递有效字节对象时设置编码。

print(str(b'abc', encoding='utf-8')) # 👉️ "abc"

如果需要连接字符串,请使用加法 + 运算符。

print('abc' + str(123))  # 👉️ "abc123"

加法 + 运算符可用于连接字符串。

或者,我们可以使用格式化的字符串文字。

str_1 = 'abc'

num_1 = 123

result = f'{str_1} {num_1}'

print(result)  # 👉️ 'abc 123'

格式化字符串文字 f-strings 让我们通过在字符串前加上 f 来在字符串中包含表达式。

确保将表达式用大括号括起来 - {expression}

“TypeError: decoding str is not supported”错误消息意味着我们正在尝试以某种方式解码 str。

由于字符串已经从字节对象中解码出来,因此我们需要删除任何试图解码它的代码。

这是一个将字符串编码为字节并将字节对象解码回字符串的简单示例。

my_bytes = 'hello world'.encode('utf-8')
print(my_bytes)  # 👉️ b'hello world'

my_str = my_bytes.decode('utf-8')
print(my_str)  # 👉️ "hello world"

str.encode() 方法将字符串的编码版本作为字节对象返回。 默认编码是utf-8。

bytes.decode() 方法返回从给定字节解码的字符串。 默认编码是utf-8。


总结

当我们尝试多次将对象转换为字符串或在调用 str() 类时设置编码关键字参数而不提供字节对象时,会出现 Python“TypeError: decoding str is not supported”。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 中的 Pandas 插入方法

发布时间:2024/04/23 浏览次数:112 分类:Python

本教程介绍了如何在 Pandas DataFrame 中使用 insert 方法在 DataFrame 中插入一列。

Pandas 重命名多个列

发布时间:2024/04/22 浏览次数:199 分类:Python

本教程演示了如何使用 Pandas 重命名数据框中的多个列。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便