Tôi đã tự hỏi nếu có thể chuyển đổi chuỗi byte mà tôi nhận được từ việc đọc tệp thành chuỗi (vì vậy type(output) == str
). Tất cả tôi đã tìm thấy trên Google cho đến nay đã được câu trả lời như How do you base-64 encode a PNG image for use in a data-uri in a CSS file?, mà dường như nó sẽ làm việc trong python 2 (ở đâu, nếu tôi không nhầm, dây là chuỗi byte anyway), nhưng không hoạt động trong python 3,4 nữa.Chuyển chuỗi byte thành chuỗi được mã hóa base64 (đầu ra không phải là chuỗi byte)
Lý do tôi muốn chuyển đổi kết quả chuỗi byte này thành một chuỗi bình thường là tôi muốn sử dụng dữ liệu base64 mã hóa này để lưu trữ trong một đối tượng JSON, nhưng tôi cứ bị lỗi tương tự như:
TypeError: b'Zm9v' is not JSON serializable
Dưới đây là một ví dụ nhỏ về nơi nó đi sai:
import base64
import json
data = b'foo'
myObj = [base64.b64encode(data)]
json_str = json.dumps(myObj)
vì vậy, câu hỏi của tôi là: có cách nào để chuyển đổi đối tượng này loại bytes
đến một đối tượng kiểu str
trong khi vẫn giữ base64 mã hóa (như vậy trong ví dụ này, tôi muốn kết quả là ["Zm9v"]
. Điều này có thể không?
Có vẻ như nó hoạt động. Cảm ơn rất nhiều! – Joeytje50