Мне нужен синтаксический анализ синтаксиса python для карты Голанга, и я использую пакет под названием "go-python".Теперь я использую пакет python msgpack, упаковывающий dict в байтовый массив, и как я не могу разобрать его в байт golang [].
func GoMap(dict *python.PyObject) map[string]interface{} {
pymp := python.PyImport_ImportModule("msgpack")
pack := pymp.GetAttrString("packb")
packArgs := python.PyTuple_New(1)
python.PyTuple_SetItem(packArgs, 0, dict)
temp := pack.Call(packArgs, python.PyDict_New())
tempLen := python.PyString_Size(temp)
bstr := python.PyString_AsString(temp)
fmt.Println("len temp", tempLen)
fmt.Println("len bstr", len(bstr))
bytestr := []byte(bstr)
var out map[string]interface{}
err := msgpack.Unmarshal(bytestr, &out)
if err != nil {
panic(err)
}
return out
}
Результат:
len temp 370
len bstr 148
panic: EOF
Я использую Pystring_AsString для разбора байтового массива python для перехода на str, если диктимеет значение 0, оно получается