在python中,序列化一个包含多种数据类型的列表如下,
import msgpack
data = ['abc', 12345, 1.2345]
buf = msgpack.dumps(data)
print(buf)
不知道golang下怎么使用,官方的msgpack好像只能序列同种类型的array;
另外的我想的办法是将array内的所有数据序列化一次,全部弄成字符串再使用array序列化,但是有点担心效率问题。
各位有好的办法也请告知在下~
黄舟2017-04-17 14:41:33
I solved it myself, using github.com/ugorji/go/codec, []interface{} can work normally.
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)
}