Cara memperbaiki: kesalahan ketik: objek string atau bytes yang diharapkan
Kesalahan yang mungkin Anda temui saat menggunakan Python adalah:
TypeError : expected string or bytes-like object
Kesalahan ini biasanya terjadi ketika Anda mencoba menggunakan fungsi re.sub() untuk mengganti beberapa pola pada suatu objek tetapi objek yang Anda kerjakan tidak seluruhnya berupa string.
Contoh berikut menunjukkan cara memperbaiki kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita memiliki daftar nilai berikut:
#define list of values
x = [1, 'A', 2, 'B', 5, 'C', 'D', 'E']
Sekarang misalkan kita mencoba mengganti setiap non-huruf dalam daftar dengan string kosong:
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
Kami menerima kesalahan karena beberapa nilai dalam daftar bukan string.
Bagaimana cara memperbaiki kesalahan tersebut
Cara termudah untuk memperbaiki kesalahan ini adalah dengan mengonversi daftar menjadi objek string dengan membungkusnya dalam operator 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
Perhatikan bahwa kami tidak menerima kesalahan karena kami menggunakan str() untuk mengonversi daftar menjadi objek string terlebih dahulu.
Hasilnya adalah daftar asli dengan setiap bukan huruf diganti dengan spasi.
Catatan : Anda dapat menemukan dokumentasi lengkap untuk fungsi re.sub() di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:
Cara Memperbaiki KeyError di Pandas
Cara Memperbaiki: ValueError: Tidak dapat mengubah float NaN menjadi int
Cara Memperbaiki: ValueError: Operan tidak dapat disiarkan dengan bentuk