post 消息状态码 400 到 influxdb

Status code 400 on post message to influxdb

我正在尝试 post 一个 json 文件到本地主机上的 influxdb。这是代码:

import json
import requests
url = 'http://localhost:8086/write?db=mydb'
files ={'file' : open('sample.json', 'rb')}
r = requests.post(url, files=files)
print(r.text)

这就是 sample.json 的样子:

    {
            "region" : "eu-west-1",
            "instanceType": "m1.small"
    }

我的回复给出了以下错误:

 {"error":"unable to parse '--1bee44675e8c42d8985e750b2483e0a8\r': 
 missing fields\nunable to parse 'Content-Disposition: form-data;
 name=\"file\"; filename=\"sample.json\"\r': invalid field 
 format\nunable   to parse '\r': missing fields\nunable to parse '{': 
 missing fields\nunable to parse '\"region\" : \"eu-west-1\",':  invalid 
 field format\nunable to parse '\"instanceType\": \"m1.small\"':  invalid 
 field format\nunable to parse '}': missing fields"}

我的 json 似乎是一个有效的 json 文件。我不确定我做错了什么。

出于性能原因,使用 JSON 写入数据已被弃用,此后已被删除。

查看 GitHub 发表评论 107043910

我觉得可能是你只打开了文件,没有读取文件。我的意思是,既然你想 post 存储在文件中的 json 对象的内容,而不是文件本身,那么最好这样做:

import json
import requests
url = 'http://localhost:8086/write?db=mydb'
json_data = open('sample.json', 'rb').read()   # read the json data from the file
r = requests.post(url, data=json_data) # post them as data
print(r.text)

这实际上是您的代码修改了一点...