gpt4 book ai didi

parsing - 如何解析 ovs-vsctl get interface statistics 的结果

转载 作者:IT王子 更新时间:2023-10-29 02:15:37 25 4
gpt4 key购买 nike

结果示例:

{collisions=0, rx_bytes=258, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=3, tx_bytes=648, tx_dropped=0, tx_errors=0, tx_packets=8}

这种格式很像 JSON,但又不是 JSON。

有没有一种简单的方法可以将其解析为 map[string]int?像 json.Unmarshal(data, &value)

最佳答案

如果传输格式不是递归定义的,即一个键不能启动一个子结构,那么它的语言是regular .因此,您可以使用 Go 的标准 regexp 包完美地解析它:

Playground link .

package main

import (
"fmt"
"regexp"
"strconv"
)

const data = `{collisions=0, rx_bytes=258, rx_crc_err=0, rx_dropped=0, rx_errors=0, rx_frame_err=0, rx_over_err=0, rx_packets=3, tx_bytes=648, tx_dropped=0, tx_errors=0, tx_packets=8}`

const regex = `([a-z_]+)=([0-9]+)`

func main() {
ms := regexp.MustCompile(regex).FindAllStringSubmatch(data, -1)

vs := make(map[string]int)

for _, m := range ms {
v, _ := strconv.Atoi(m[2])
vs[m[1]] = v
}

fmt.Printf("%#v\n", vs)
}

关于parsing - 如何解析 ovs-vsctl get interface <interface> statistics 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33099162/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com