作者hsnu114444 (littleq0903)
看板Python
標題Re: [問題] Python 2.x 3.x pickle 不相容
時間Thu Sep 6 11:49:55 2012
剛剛試了一下還真的不行,查了一下發現有這個 issue:
http://bugs.python.org/issue6784
看起來是 solved 但還沒 merge 進去,因為 test 還沒寫。
如果只要帶 datetime 的話,可以用 timestamp 的方式帶字串,應該可行
具體用法如下:
import time, datetime
datetime.datetime.fromtimestamp(time.time())
time.time() 會傳出一個 timestamp 的字串
datetime.datetime.fromtimestamp 會吃 timestamp 的字串再轉成 datetime 物件
希望對你有幫助:)
※ 引述《os653 (allstar)》之銘言:
: Python 2.7 把一個 datetime.datetime 物件打包成 bytes 傳給 Python 3.2
: Python 3.2 卻沒辦法把這些 bytes 還原成 datetime.datetime 物件
: 錯誤訊息如下
: UnicodeDecodeError: 'ascii' codec can't decode byte 0xdc in position 1:
: ordinal not in range(128)
: 試過用其他 codec,一樣噴 UnicodeDecodeError 出來
: 改其他 pickle protocol,也一樣噴 UnicodeDecodeError 出來
: 請問這是為什麼?照理說 pickle module 應該能相容才對呀?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.191
推 os653:看來是pickle的問題,遺憾的是我需要的不只是datetime... 09/06 15:11
→ os653:其實只要能讓 Python2 object 轉換成 Python3 object 就行 09/06 15:13
→ os653:不管怎樣,還是多謝您了 09/06 15:14
推 keitheis:謝謝助教大大 09/25 14:23