2016-10-18 116 views
0

我使用InfluxDb和具有簡單的線路協議線,如下所示:將數據插入Influxdb使用Python客戶端與線協議

cpu,atag=test1 idle=100,usertime=10,system=1 

我有使用字典蟒客戶如下所示

client = InfluxDBClient(host, port, USER, PASSWORD, DBNAME) 
client.create_database(DBNAME) 

tagdic= {'Name': 'n1', 'data': 7} 
fielddic= {'Name': 'field', 'f1': 70} 
def main(): 
    var = 1 
    while var == 1 : 
    client.write("cpu,atag=test1 idle=100,usertime=10,system=1") 
    #client.write_points([{"measurement": "cpu", "tags": tagdic, "fields": fielddic}]) 

以上程序工作正常,只要我使用write_points和字典使用write_points,但是當我使用client.write時,我收到錯誤。

如何通過使用協議值='行'而不是默認協議'json'使用client.write作爲提及here(行號-255)?

+0

你有沒有嘗試過類似的東西(「cpu,atag = test1 ...」,None,204,「line」)? – IIIIIIIIIIIIIIIIIIIIII

回答

1

你得到了什麼錯誤?這是非常重要的信息。

你得到:

influxdb.exceptions.InfluxDBClientError: 400: {"error":"database is required"} 

那麼你應該寫你的電話是這樣的:

client.write(['cpu,atag=test1 idle=100,usertime=10,system=1'],{'db':DBNAME},204,'line') 

事情我改變:

  • 線路協議字符串(S)必須是在列表中。
  • 不知何故,你需要將數據庫名稱添加到額外的參數。我不確定這是暫時的「錯誤」還是預期的功能。
  • 您必須將協議設置爲「線」(這也迫使你設定的預期收益 代碼,因爲這是該協議前位置參數)

爲Ubuntu用戶請注意:如果你安裝在撰寫本文時,ubuntu軟件包管理器將獲得一個老版本的python客戶端,其中write函數接受其他參數。所以如有疑問,請使用pip進行安裝。

相關問題