Re: [問題] Python 2.x 3.x pickle 不相容

看板Python作者 (littleq0903)時間13年前 (2012/09/06 03:49), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/2 (看更多)
剛剛試了一下還真的不行,查了一下發現有這個 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

09/06 15:11, , 1F
看來是pickle的問題,遺憾的是我需要的不只是datetime...
09/06 15:11, 1F

09/06 15:13, , 2F
其實只要能讓 Python2 object 轉換成 Python3 object 就行
09/06 15:13, 2F

09/06 15:14, , 3F
不管怎樣,還是多謝您了
09/06 15:14, 3F

09/25 14:23, , 4F
謝謝助教大大
09/25 14:23, 4F
文章代碼(AID): #1GI1rd2d (Python)
文章代碼(AID): #1GI1rd2d (Python)