我正在尝试在涌入数据库中插入一些字符串值,但仍然会出现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\"
答案 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)