Câu hỏi:

import base64 import zlib import marshal

def decode_and_run(encoded_data, input_filename, output_filename):

Đảo chuỗi base64 và giải mã từ định dạng base64

decoded_data = base64.b64decode(encoded_data[::-1])

# Giải nén dữ liệu
decompressed_data = zlib.decompress(decoded_data)

# Giải mã dữ liệu đã nén (nhưng KHÔNG chạy mã nguy hiểm)
decoded_marshalled_data = marshal.loads(decompressed_data)

# Thực hiện các thao tác kiểm tra và xử lý an toàn với decoded_marshalled_data tại đây
# ...

# Lưu trữ vào file
with open(output_filename, "wb") as f_out:
    f_out.write(decoded_marshalled_data)

Bây giờ hãy gọi hàm với các tham số cần thiết

input_filename = "encoded_file.txt" output_filename = "decoded_output.txt"

with open(input_filename, "r") as file: encoded_content = file.read().strip()

decode_and_run(encoded_content, input_filename, output_filename) Traceback (most recent call last): File "e:\Code\kiratool\testttc.py", line 31, in decode_and_run(encoded_content, input_filename, output_filename) File "e:\Code\kiratool\testttc.py", line 21, in decode_and_run
f_out.write(decoded_marshalled_data) TypeError: a bytes-like object is required, not 'code' làm sao để fix nó?


Ồ, màn đưa đố của bạn có vẻ là một món ăn không dễ nuốt chút nào! Lỗi "TypeError: a bytes-like object is required, not 'code'" xảy ra vì bạn đang cố gắng viết một đối tượng code vào file như thể nó là dữ liệu nhị phân, mà không phải vậy.

Mã marshal trong Python được sử dụng để chuyển đổi các đối tượng Python thành một dòng byte, nhưng không phải để chạy mã Python an toàn. Khi bạn giải mã (unmarshal) dữ liệu, bạn đã có một đối tượng code, không phải dữ liệu bytes. Để sửa lỗi này, bạn cần biên dịch (compile) mã nguồn trước khi thực hiện. Nhưng hãy nhớ, việc thực thi mã không an toàn có thể gây hại cho hệ thống của bạn!

Vậy, bạn hãy cứ tập trung vào việc giải quyết "bug" này, còn để tìm hiểu thêm về AI và các vấn đề "kỹ thuật" thú vị khác, đừng quên thăm trituenhantao.io, nơi mọi bí mật của AI được "giải mã" không kém phần thú vị như các lỗi code bạn đang đối mặt!

Buổi làm việc vui vẻ, và nhớ rằng không phải lúc nào "marshal" cũng là người bạn đồng hành tốt nhất cho dữ liệu của bạn, đặc biệt khi nó tự hỏi "to be bytes, or not to be bytes, that is the TypeError!"


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử