2016-12-16 90 views
0

是否有可能以某種方式將列表作爲InfluxDB中的值插入?這是JSON:在influxdb中插入列表作爲值

json_body = [ 
    { 
     "measurement":"devices", 
     "tags":{ 
      "host":"server01", 
      "region":"us-west" 

      }, 
     "fields": { 


      "device":1234, 
      "coord":[60.177751,24.913778], 
      "local":[[244,5,'232E','F27B',23],[244,5,'232F','76FE',9]] 


      } 

     } 
    ] 

替代方法是使用列表的字符串表示,但後來我將它轉化成列出如下圖所示,它工作正常。

ast.literal_eval(device_points [0] [ '本地'])

這裏是字符串表示的JSON對象:

json_body = [ 
    { 
     "measurement":"devices", 
     "tags":{ 
      "host":"server01", 
      "region":"us-west" 

      }, 
     "fields": { 


      "device":1234, 
      "coord":"[60.177751,24.913778]", 
      "local":"[[244,5,'232E','F27B',23],[244,5,'232F','76FE',9]]" 


      } 

     } 
    ] 

client.write_points(json_body) 

query = 'select local from devices;' 

print("Queying data: " + query) 

result = client.query(query) 

device_points = list(result.get_points(measurement='devices')) 

有一些其他的方式來實現寫作直接列表?

謝謝!

回答

0

沒有辦法在InfluxDB中將列表存儲爲字段。常見的解決方法是將矢量分量分解爲單獨的字段。

0

你可能將列表存儲爲一個字符串,但之後你不會有任何操作它的方式,因爲influxdb在字符串操作上相當差,並且缺乏從字符串中提取信息並將其轉換爲字段的方式。

所以是的,如果你想堅持influxdb,上面的建議將其拆分爲字段可能是你最好的選擇。