如何在Influxdb测量中插入/存储字符串值?

时间:2017-11-13 21:10:27

标签: python python-requests influxdb

我正在尝试在涌入数据库中插入一些字符串值,但仍然会出现400错误。我正在使用python请求模块连接到Influxdb。这是我的代码:

description = '"' + some_str + '"'
payload = "%s, name=%s, description=%s, count=%d %d" %(measurement, name, description,count,timestamp)
requests.post(influx_uri, data=payload, headers= headers)

我一直收到这个错误:

400 {"error":"unable to parse 'sample,name=sample, description=\"some_str\", count=1 15106068120000000' : missing tag key"}

我不知道如何生成description=\"some_str\"

2 个答案:

答案 0 :(得分:2)

行。另一种尝试。

reading the docs,没有提及在长字符串周围加引号。相反,他们说你应该用反斜杠逃避空格:

  

转义角色

     

如果标记键,标记值或字段键包含空格,逗号,,或   等号=必须使用反斜杠字符进行转义。   反斜杠字符不需要转义。逗号和空格   还需要进行转义以进行测量,但等于sign =   不要。

此外,逗号后不应有空格。所以我建议你试试:

description = "some\ str"
payload = "%s,name=%s,description=%s,count=%d %d" % (measurement, name, description,count,timestamp)

答案 1 :(得分:0)

我从未使用过Influxdb,说实话,这是我第一次听到它,但是......

通过查看docs,他们似乎使用POST方法将JSON内容发布到网址,例如:

curl -X POST -d '[{"name":"foo","columns":["val"],"points":[[23]]}]' 'http://localhost:8086/db/mydb/series?u=root&p=root'

您的行看起来不像JSON文档。而你最好成功。不确定你的结构是什么,但也许这可以做到这一点?

payload = """{"name":"%s", "description":"%s", "count":"%d %d"}""" %(name, description, count, timestamp)