使用inflow和python在数据库中写入数据

2024-05-15 09:43:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用infloxdb尝试使用infloxdb v4.0.0在本地infloxdb上写一些'measurements'。。。

我有点困惑,因为有些地方说你可以使用dict或者json和/或line协议。。。。

从这里http://influxdb-python.readthedocs.io/en/latest/examples.html#tutorials-pandas到这里https://github.com/influxdata/influxdb-python/blob/master/influxdb/client.py

第1-使用:创建DB对象

InfluxDBClient('localhost', database='DBNAME')

第2-使用数据创建dict:

measurement = {}
measurement['measurement'] = 'energy'
measurement['tags'] = {}
measurement['fields'] = {}
measurement['tags']['MeterID'] = str(meterId)
measurement['fields']['Energy_Wh'] = str(eFrame.getReading())

第3-将数据推送到BD:

try:
    self.db.write(measurement)
except Exception as e:
    print e

程序正常工作,但数据库中没有数据存储,我的控制台输出如下:

2017-01-11 12:41:09,741 - INFO - Saving Meter: MeterId = 09060178
u'points'
Meter-ID: 09060178 Energy Value (Wh): 10380300
{'fields': {'Energy_Wh': '10380300'}, 'tags': {'MeterID': '09060178'}, 'measurement': 'energy'}

1line logger file info
2line error/Exception
3line value returned by device
4line generated dict
(prints except logging are executed last)

我似乎找不到我写错字的原因或原因,以及u'points'错误的含义。。。有人能帮忙吗??


Tags: 数据fieldstagsexceptiondictenergymeasurementinfloxdb
2条回答

您可以尝试以下方法(如examples中所示):

from influxdb import InfluxDBClient

client = InfluxDBClient(host, port, user, password, dbname)

client.create_database(dbname)

 json_body = [
        {
            "measurement": "cpu_load_short",
            "tags": {
                "host": "server01",
                "region": "us-west"
            },
            "time": "2009-11-10T23:00:00Z",
            "fields": {
                "value": 0.64
            }
        }
    ]

client.write_points(json_body)

我建议使用Pinform库,这是一个用于infloxdb的python ORM,可以轻松地获取时间戳、字段和标记。它用正确的函数处理写和读。

相关问题 更多 >