首页  >  问答  >  正文

python - golang中msgpack序列化array问题

在python中,序列化一个包含多种数据类型的列表如下,

import msgpack

data = ['abc', 12345, 1.2345]
buf = msgpack.dumps(data)
print(buf)

不知道golang下怎么使用,官方的msgpack好像只能序列同种类型的array;
另外的我想的办法是将array内的所有数据序列化一次,全部弄成字符串再使用array序列化,但是有点担心效率问题。

各位有好的办法也请告知在下~

大家讲道理大家讲道理2717 天前511

全部回复(1)我来回复

  • 黄舟

    黄舟2017-04-17 14:41:33

    自己解决了,使用github.com/ugorji/go/codec[]interface{}是可以正常工作的。

    package main
    
    import (
        "bytes"
        "fmt"
        "github.com/ugorji/go/codec"
    )
    
    func main() {
        mh := &codec.MsgpackHandle{RawToString: true}
        data := []interface{}{"abc", 12345, 1.2345}
        buf := &bytes.Buffer{}
        enc := codec.NewEncoder(buf, mh)
        enc.Encode(data)
        fmt.Printf("%x", buf)
    }
    

    回复
    0
  • 取消回复