go
  • influxdb
  • 2016-12-30 50 views 0 likes 
    0

    我有一個去程序來通過Influxdb客戶端查詢Influxdb。golang influxdb客戶端對陣列或片段的響應

    功能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地址組成?

    +0

    你可以把完整的輸出在這裏一個小樣本就可以了,但必須是完整的 –

    +0

    輸出樣本:'[{[ {events map [] [time distinct] [[1970-01-01T00:00:00Z 192.168.123.100] [1970-01-01T00:00:00Z 192.168.123.233] [1970-01-01T00:00:00Z 192.168。 123.24] [1970-01-01T00:00:00Z 192.168.123.222] [1970-01-01T00:00:00Z 192.168.123.112]]}] []}]' – myNickname

    +0

    'resp'的結構是什麼? – Addison

    回答

    1

    好吧,我知道了:

    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]) 
    

    輸出:

    [2016-10-24T00:12:12.123456Z 192.168.123.107] 
    2016-10-24T00:12:12.123456Z 
    192.168.123.107 
    
    相關問題