英文:
golang influxdb client response to array or slice
问题
我有一个用于通过Influxdb客户端查询Influxdb的Go程序。
函数queryDB:
https://github.com/influxdata/influxdb/tree/master/client#querying-data
通过以下方式调用:
resp, err := queryDB(c, "SELECT ip FROM events WHERE time >= '2016-10-24T00:00:00Z' AND time < '2016-10-24T01:00:00Z' ORDER BY time DESC")
当我执行
fmt.Printf("%s", resp)
我得到类似以下的结果
[{[{events map[] [time ip] [[2016-10-24T00:12:12.123456Z 192.168.123.107] /*...and so on...*/ [2016-10-24T00:24:24.123456Z 192.168.123.103]]}] [] }]
如何获取一个由时间和IP地址组成的简单数组或切片?
英文:
I have a go program to query an Influxdb via Influxdb client.
Function queryDB:
https://github.com/influxdata/influxdb/tree/master/client#querying-data
is called via
resp, err := queryDB(c, "SELECT ip FROM events WHERE time >= '2016-10-24T00:00:00Z' AND time < '2016-10-24T01:00:00Z' ORDER BY time DESC")
when I do
fmt.Printf("%s", resp)
I get something like
[{[{events map[] [time ip] [[2016-10-24T00:12:12.123456Z 192.168.123.107] /*...and so on...*/ [2016-10-24T00:24:24.123456Z 192.168.123.103]]}] [] }]
How can I get a simple array or slice consisting of time and IP address?
答案1
得分: 2
好的,以下是翻译好的代码部分:
var myData [][]interface{} = make([][]interface{}, len(resp[0].Series[0].Values))
for i, d := range resp[0].Series[0].Values {
myData[i] = d
}
fmt.Println("", myData[0]) // 切片中的第一个元素
fmt.Println("", myData[0][0])
fmt.Println("", myData[0][1])
输出结果:
[2016-10-24T00:12:12.123456Z 192.168.123.107]
2016-10-24T00:12:12.123456Z
192.168.123.107
英文:
Ok, I got it:
var myData [][]interface{} = make([][]interface{}, len(resp[0].Series[0].Values))
for i, d := range resp[0].Series[0].Values {
myData[i] = d
}
fmt.Println("", myData[0]) //first element in slice
fmt.Println("", myData[0][0])
fmt.Println("", myData[0][1])
output:
[2016-10-24T00:12:12.123456Z 192.168.123.107]
2016-10-24T00:12:12.123456Z
192.168.123.107
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论