在influxdb中插入列表作为值
问题描述:
是否有可能以某种方式将列表作为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'))
有一些其他的方式来实现写作直接列表?
谢谢!
答
没有办法在InfluxDB中将列表存储为字段。常见的解决方法是将矢量分量分解为单独的字段。
答
你可能将列表存储为一个字符串,但之后你不会有任何操作它的方式,因为influxdb在字符串操作上相当差,并且缺乏从字符串中提取信息并将其转换为字段的方式。
所以是的,如果你想坚持influxdb,上面的建议将其拆分为字段可能是你最好的选择。