我正在嘗試解析在 python 中生成并發(fā)布到此處以存儲在 cassandra 中的時間戳,但出現(xiàn)了一個奇怪的錯誤。parsing time ""2015-11-05 14:14:32-0700"" as ""2006-01-02T15:04:05Z07:00"": cannot parse " 14:14:32-0700"" as "T"無論如何,我不想修改 python 給我的時間,只想將它直接傳遞給 cassandra,但驅(qū)動程序說我需要讓它成為time.Time(不是字符串)才能這樣做。這是代碼type OurCustomType struct { TimeStamp time.Time `json:"timestamp"`}func extractJsonBody(r *http.Request) []byte { body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1048576)) if err != nil { //... } if err := r.Body.Close(); err != nil { //.... } return body}func View(w http.ResponseWriter, r *http.Request) { var variable OurCustomType body := extractJsonBody(r) if err := json.Unmarshal(body, &variable); err != nil { //.. } else { //... }}編輯:我已經(jīng)實現(xiàn)了我自己的time.Time類型并實現(xiàn)了一個自定義UnmarshalJSON來嘗試解決這個問題。type PythonTime struct { time.Time}func (self *PythonTime) UnmarshalJSON(b []byte) (err error) { self.Time, err = time.Parse("2006-01-02 15:04:05-0700", string(b)) return}但我沒有收到此錯誤:parsing time ""2015-11-05 14:14:32-0700"" as "2006-01-02 15:04:05-0700": cannot parse ""2015-11-05 14:14:32-0700"" as "2006"
1 回答

慕妹3242003
TA貢獻(xiàn)1824條經(jīng)驗 獲得超6個贊
這里的問題是您在從 Python 傳遞的日期中有引號。
在您發(fā)布的第一個錯誤中,您可以看到它在讀取"T"
. 那是因為您在 Go 中使用的格式與從 Python 返回的格式不同。
parsing time ""2015-11-05 14:14:32-0700"" as ""2006-01-02T15:04:05Z07:00"": cannot parse " 14:14:32-0700"" as "T"
您使用""2006-01-02T15:04:05Z07:00""
時從Python的格式為""2006-01-02 15:04:05-0700""
。
在您的上一個錯誤中也是如此,只是您刪除了日期格式中的一對引號與您在 Python 中返回的內(nèi)容。
parsing time ""2015-11-05 14:14:32-0700"" as "2006-01-02 15:04:05-0700": cannot parse ""2015-11-05 14:14:32-0700"" as "2006"
這是說您提供了"2006-01-02 15:04:05-0700"
但""2006-01-02 15:04:05-0700""
由于 Python 返回的日期中的額外引號而導(dǎo)致的。
- 1 回答
- 0 關(guān)注
- 167 瀏覽
添加回答
舉報
0/150
提交
取消