将特定格式的字符串转换为 map[string]string
Convert specific formatted string to map[string]string
我有一些上游数据管道,我有如下值的字符串类型变量
map[admin_username:deploy image_name:rhel_lvm84-gen2 vm_size:Standard_DS4_v2]
如何将其转换为映射[string]字符串并获取特定键的值。
这是一个简单的解析字符串的事情。使用 strings.Split() 在这里很有用。
func main() {
ret := make(map[string]string)
s := "map[admin_username:deploy image_name:rhel_lvm84-gen2 vm_size:Standard_DS4_v2]"
rawMap := s[strings.Index(s, "map[")+4:strings.LastIndex(s,"]")]
pairs := strings.Split(rawMap, " ")
for _, pair := range pairs {
kvp := strings.SplitN(pair, ":", 2)
if len(kvp) != 2 {
fmt.Printf("Bad key-value pair, ignoring...")
continue
}
ret[kvp[0]] = kvp[1]
}
fmt.Printf("Here is the result len=%d :%+v", len(ret), ret)
}
输出:
Here is the result len=3 :map[admin_username:deploy image_name:rhel_lvm84-gen2 vm_size:Standard_DS4_v2]
我有一些上游数据管道,我有如下值的字符串类型变量
map[admin_username:deploy image_name:rhel_lvm84-gen2 vm_size:Standard_DS4_v2]
如何将其转换为映射[string]字符串并获取特定键的值。
这是一个简单的解析字符串的事情。使用 strings.Split() 在这里很有用。
func main() {
ret := make(map[string]string)
s := "map[admin_username:deploy image_name:rhel_lvm84-gen2 vm_size:Standard_DS4_v2]"
rawMap := s[strings.Index(s, "map[")+4:strings.LastIndex(s,"]")]
pairs := strings.Split(rawMap, " ")
for _, pair := range pairs {
kvp := strings.SplitN(pair, ":", 2)
if len(kvp) != 2 {
fmt.Printf("Bad key-value pair, ignoring...")
continue
}
ret[kvp[0]] = kvp[1]
}
fmt.Printf("Here is the result len=%d :%+v", len(ret), ret)
}
输出:
Here is the result len=3 :map[admin_username:deploy image_name:rhel_lvm84-gen2 vm_size:Standard_DS4_v2]