我正在尝试解析在 python 中生成并发布到此处以存储在 cassandra 中的时间戳,但出现了一个奇怪的错误。
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,但驱动程序说我需要让它成为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 {
//...
}
}
编辑:我已经实现了我自己的time.Time类型并实现了一个自定义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"
慕妹3242003
相关分类