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
TOP những dịch vụ thư điện tử tích hợp AI
TOP lựa chọn thay thế Google Flow tốt nhất
TOP công cụ AI thiết kế đồ họa trên trình duyệt web
Hướng dẫn tạo và chia sẻ slide AI trên Gamma
TOP ứng dụng AI chỉnh eo thon gọn đẹp nhất
Cách thay đổi ngôn ngữ trong ChatGPT
TOP công cụ AI pháp luật giúp tra cứu luật và giải đáp pháp lý
Cursor là gì?
Cách đồng bộ ngữ cảnh giữa ChatGPT, Claude, Gemini với ThreadPort
Hướng dẫn dùng Gemini Live chat bằng giọng nói
Hướng dẫn tạo ảnh thời khóa biểu chỉ bằng 1 câu lệnh
TOP công cụ AI cải thiện chất lượng video
Hướng dẫn chỉnh sửa video trong Google Flow
5 lợi ích của Google AI Pro mà nhiều người chưa tận dụng
7 ý tưởng prompt viết bài bằng AI giúp thúc đẩy quy trình sáng tạo nội dung
5 cách sáng tạo để sử dụng LLM
Tạo video AI đầu tiên của bạn trong 10 phút
TOP công cụ hữu ích nên thử trên Quantrimang
Prompt tạo poster nội quy lớp học các cấp
Hướng dẫn lấy Gemini API Key và kết nối với n8n chi tiết