Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Hiểu về hệ thống kiểu (type) trong Python là chìa khóa để giải quyết lỗi TypeError. Dưới đây là chi tiết cách sửa lỗi "TypeError: object is not subscriptable" trong Python.

Cố gắng truy xuất dữ liệu từ một đối tượng và thấy báo lỗi "object is not subscriptable"? Vấn đề ở đây là bạn đang index sai kiểu dữ liệu. Hãy cùng nhau tìm hiểu về các kiểu “subscriptable” và cách sửa lỗi TypeError nhé!
Khái niệm “subscriptable” trong Python nghĩa là một kiểu dữ liệu chứa nhiều giá trị mà bạn có thể truy cập riêng từng giá trị.
Bạn có thể vào một giá trị cụ thể từ kiểu dữ liệu subscriptable qua index của nó, dùng ký hiệu dấu ngoặc vuông ([]).
Nếu cố gắng truy cập các mục trong kiểu dữ liệu không thể index, Python sẽ báo: "TypeError: object is not subscriptable".
Những kiểu dữ liệu sau có thể subscriptable trong Python: lists, strings, tuples, và dictionaries.
list_example = [1, 3, 5, "Idowu"]
string_example = "Idowu Omisola"
tuple_example = (1, 3, 5, "Idowu")
dict_example = {"name": "Idowu", "Language": "Yoruba"}
print(list_example[0]) # 1
print(string_example[3]) # w
print(tuple_example[1]) # 3
print(dict_example["name"]) # Idowu
Tuy nhiên, set, integer, float, và Boolean không thể truy cập qua index, vì thế chúng không thể subscriptable:
float_example = 12.45
int_example = 12367
bool_example = True
set_example = {1, 3, 5, "Python"}
print(float_example[1])
print(bool_example[2])
print(int_example[2])
print(set_example[2])
Cố gắng chạy từng lệnh này sẽ cho ngoại lệ "object is not subscriptable":

Sửa lỗi "object is not subscriptable" dễ hơn khi bạn hiểu các quy tắc để truy cập từng kiểu dữ liệu. Vì thế, bắt đầu gỡ lỗi Python bằng cách kiểm tra kiểu dữ liệu của đối tượng đang muốn index.
float_example = 12.45
int_example = 12367
bool_example = True
set_example = {1, 3, 5, "Python"}
print(type(float_example)) # <class 'float'>
print(type(int_example)) # <class 'int'>
print(type(bool_example)) # <class 'bool'>
print(type(set_example)) # <class 'set'>
Sau khi đã xác định kiểu dữ liệu không thể subscriptable, chuyển đổi nó sang kiểu có thể index để giải quyết vấn đề. Điều này hữu ích nếu dữ liệu đến từ API bên thứ ba. Chuyển đổi kiểu dữ liệu như integer, float và Boolean thành chuỗi khiến chúng subscriptable:
print(str(float_example)[:2]) # 12 print(str(int_example)[:2]) # 12 print(str(bool_example)[:2]) # Tr
Thậm chí bạn có thể thao tác các kết quả chuỗi Python như ý muốn. Nếu đang phải xử lý integer và float, có thể bạn muốn dữ liệu kiểu dữ liệu gốc trong output. Để làm việc này, chuyển đổi giá trị kết quả vào kiểu dữ liệu gốc sau khi index chúng dưới dạng chuỗi:
converted_float = float(str(float_example)[:2])
converted_int = int(str(int_example)[:2])
# 12.0 Data type:<class 'float'>
print(converted_float, f'Data type:{type(converted_float)}')
# 12 Data type:<class 'int'>
print(converted_int, f'Data type:{type(converted_int)}')
Đối với một set, bạn có thể biến nó thành list bằng list(set) một dòng trong Python nhưng điều đó không bảo toàn các vị trí mục trong danh sách kết quả. Để đảm bảo bạn nhận được một danh sách với các vị trí mục được giữ nguyên, hãy sử dụng hàm lambda của Python như sau:
set_example = {1, 3, 5, "Python"}
converted = sorted(set_example, key=lambda x: (isinstance(x, str), x))
print(converted[3]) # Python
Trên đây là cách sửa lỗi TypeError: object is not subscriptable trong Python. Hi vọng bài viết hữu ích với các bạn.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Karaoke Ai rồi cũng sẽ khác- Hà Nhi Cover (Vinh Over ReMix)
Hướng dẫn tạo ảnh tổng kết năm học bằng ChatGPT
Cách viết prompt tạo ảnh AI chuẩn với công thức PICTURE
Hướng dẫn tạo file PDF bài tập trên Gemini không lỗi font
Các mẫu thiết kế AI agent: ReAct, Reflection và Planning
Hướng dẫn tạo bảng tổng kết cuối năm trên ChatGPT
Sử dụng công cụ: Tăng thêm sức mạnh cho AI agent
Viết prompt hiệu quả với công thức CREATE (dùng cho mọi AI)
Hệ thống multi-agent: Nhóm cho các chuyên gia
Tổng hợp 20 prompt tạo poster livestream bán hàng bằng ChatGPT
Hướng dẫn tạo giấy khen thưởng học sinh cuối năm
Cách biến câu trả lời Gemini thành câu hỏi bằng Brisk
Cách xem nhân tướng học bằng ChatGPT
Cách chọn kiểu tóc phù hợp với gương mặt bằng ChatGPT
Cách thay đổi phong cách ảnh bằng AI trong Messenger
AI Agent và GPT tùy chỉnh trong tự động hóa doanh nghiệp
Prompt tạo giấy khen học sinh theo phong cách khác nhau
Prompt tạo ảnh Tổng kết năm học bằng ChatGPT
Prompt tạo ảnh tranh vẽ dễ thương, tranh vẽ con nít AI
Prompt tự động hóa soạn giáo án với Claude AI