Como corrigir: erro de tipo: objeto de string ou bytes esperado


Um erro que você pode encontrar ao usar Python é:

 TypeError : expected string or bytes-like object

Este erro geralmente ocorre quando você tenta usar a função re.sub() para substituir alguns padrões em um objeto, mas o objeto com o qual você está trabalhando não é inteiramente strings.

O exemplo a seguir mostra como corrigir esse erro na prática.

Como reproduzir o erro

Suponha que temos a seguinte lista de valores:

 #define list of values
x = [1, 'A', 2, 'B', 5, 'C', 'D', 'E']

Agora suponha que tentamos substituir todas as não letras da lista por uma string vazia:

 import re

#attempt to replace each non-letter with empty string
x = re. sub (' [^a-zA-Z] ', '', x)

TypeError : expected string or bytes-like object

Recebemos um erro porque alguns valores da lista não são strings.

Como corrigir o erro

A maneira mais fácil de corrigir esse erro é converter a lista em um objeto string envolvendo-a no operador str() :

 import re

#replace each non-letter with empty string
x = re. sub (' [^a-zA-Z] ', '', str (x))

#display results
print (x)

A B C D E

Observe que não estamos recebendo um erro porque usamos str() para converter primeiro a lista em um objeto string.

O resultado é a lista original com cada letra não substituída por um espaço.

Nota : Você pode encontrar a documentação completa da função re.sub() aqui .

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *