2016-12-16 88 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,上面的建议将其拆分为字段可能是你最好的选择。