我正在尝试将influxdb集成到我的应用程序中,并处理输出。我正在导入InfluxDBClient包以连接到本地机器上运行的内流实例。使用query()返回'influxdb.resultset.ResultSet‘格式的数据。
但是,我希望能够为我的计算专门从结果集中选择每个元素。我在这里使用了不同的函数,如key()、items()和value(),这些函数都来自于进水of python手册,但是没有用:http://influxdb-python.readthedocs.io/en/latest/api-documentation.html。
这是query()的示例输出:
结果:ResultSet({‘u’‘cpu’,无)‘:{u’‘usage_guest_尼斯’:0,u‘user_user’:0.90783871790308868,u‘user_尼斯’:0,u‘user_steal’:0,u‘user_iowait’:0.056348610076366427,u‘’host‘:U’xx.xx.hostname.com‘,u’user_来宾‘:0,u’user_idle‘:98.184322579062794,u’user_09tirq‘:0.00626566755314457,U‘’time‘:u'2016-06-26T16:25:00Z',u’u_irq‘:0,u’‘cpu’:U‘’cpu合计‘,u’u_system‘:0.84522915123660536})
我还发现很难使用上述链接中提到的Raw以JSON格式获取数据。如果有任何指针来处理上面的输出,那就太好了。
发布于 2016-06-27 13:52:19
items()返回以下格式的元组((u‘’cpu‘,None) ),其中生成器可用于循环并获得字典格式的实际数据。我花了一些时间才弄明白,但那很有趣!!
发布于 2018-05-03 14:59:35
根据医生们,您可以使用get_points()函数从InfluxDB结果集检索结果。该函数允许您通过测量、标记、度量和标记进行筛选,或者只需获得所有结果而不进行任何筛选。
得到所有的点
使用rs.get_points()将返回ResultSet中所有点的生成器。
基于测量的滤波
使用rs.get_points('cpu')将返回一个生成器的所有点,在一个意甲与测量名称cpu,无论标签。
rs = cli.query("SELECT * from cpu")
cpu_points = list(rs.get_points(measurement='cpu'))通过使用rs.get_points(tags={'host_name': 'influxdb.com'})的标记过滤将返回一个生成器,用于使用指定标记标记的所有点,而不管度量名称如何。
rs = cli.query("SELECT * from cpu")
cpu_influxdb_com_points = list(rs.get_points(tags={"host_name": "influxdb.com"}))使用度量名和标记对进行过滤,使用度量名称和标记的将返回一个生成器,用于具有指定度量名称的意境中的所有点,并且其标记与给定的标记相匹配。
rs = cli.query("SELECT * from cpu")
points = list(rs.get_points(measurement='cpu', tags={'host_name': 'influxdb.com'}))https://stackoverflow.com/questions/38040644
复制相似问题