在Influxdb中将列表作为值插入

时间:2016-12-16 11:50:26

标签: python json influxdb influxdb-python

是否有可能以某种方式在InfluxDB中将列表作为值插入?这是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]]


            }

        }
    ]

替代方法是使用列表的字符串表示,但我必须将其转换为如下所示的列表,这很好。

  

ast.literal_eval(device_points [0] [' local'])

这是带有字符串表示的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("Querying data: " + query)

result = client.query(query)

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

还有其他方法可以直接编写列表吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

没有办法将列表存储为InfluxDB中的字段。常见的解决方法是将矢量分量分成单个字段。

答案 1 :(得分:0)

你可以将列表存储为一个字符串,但之后你就没有任何方法可以操作它了,因为在字符串操作中,flowxdb相当差,并且缺少从字符串中提取信息并将它们转换为字段的方法。

所以是的,如果你想坚持使用Influxdb,上面将它分成字段的建议可能是你最好的选择。