Tôi tự hỏi liệu có cách nào để tải một đối tượng được ngâm trong Python 2.4, với Python 3.4.
Tôi đã chạy 2to3 trên một số lượng lớn mã kế thừa của công ty để cập nhật mã này.
Làm xong việc này, khi chạy tập tin tôi gặp lỗi sau:
File "H:\fixers - 3.4\addressfixer - 3.4\trunk\lib\address\address_generic.py"
, line 382, in read_ref_files
d = pickle.load(open(mshelffile, 'rb'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 1: ordinal
not in range(128)
Nhìn vào đối tượng ngâm trong tranh chấp, đó là dict
một dict
, chứa các khóa và giá trị của loại str
.
Vì vậy, câu hỏi của tôi là: Có cách nào để tải một đối tượng, ban đầu được ngâm trong python 2.4, với python 3.4 không?
json
mô-đun không? Có lẽ bạn có thể viết một tập lệnh 2.4 để giải nén đối tượng và lưu nó dưới dạng đối tượng json, sau đó viết tập lệnh 3,4 đọc đối tượng json và lưu nó dưới dạng đối tượng pickle tương thích 3,4. Đây sẽ là hoạt động một lần mà bạn chạy trên tất cả các tệp dưa chua của mình.