簡體   English   中英

在 Influxdb 中插入列表作為值

[英]Inserting list as value in Influxdb

是否有可能以某種方式將列表作為值插入 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 object:

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

有沒有其他方法可以直接實現列表的編寫?

謝謝!

無法將列表存儲為InfluxDB中的字段。 常見的解決方法是將矢量分量拆分為各個字段。

您可能將列表存儲為字符串,但是之后就沒有任何方法可以使用它,因為influxdb在字符串操作上相當差,並且缺乏從字符串中提取信息並將其轉換為字段的方法。

因此,是的,如果您要堅持使用influxdb,以上建議將其拆分為字段可能是您的最佳選擇。

有兩種方法可以做到

  1. 將列表轉換為字符串並將其存儲為字段。 在這個方法中,列表中項目的相對順序被保留,你可以稍后使用這個字符串並取回原始列表

  2. 從列表中取出單個項目從中創建一個標簽集並將這些點存儲在涌入中。 這里的缺點是物品的順序丟失了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM