2016-10-03 15 views
0

ローカルホストのinfluxdbにjsonファイルを投稿しようとしています。これはコードです:ステータスコード400の投稿メッセージへの投稿

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ファイルのようです。私は何が間違っているのか分かりません。

答えて

0

私は、ファイルを開いても読み込めないということが原因だと思います。ただ、実際にあなたのコードが変更され

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) 

:私はあなたがjsonファイルに格納されたオブジェクトではなく、ファイル自体のコンテンツを投稿したいので、代わりにこれを行うには良いかもしれ意味しますビット...

+1

ありがとう、これはこのエラーを取り除くのに役立ちました。しかし、今はInfluxDBエラーが発生しています - {"エラー": "データベースが必要です"} –

+0

@TracyAnnMonteiro、これは 'InfluxDB'と関係している問題です。 詳しくは https://github.com/influxdata/influxdb/issues/2127 こちらをご覧ください。この問題を解決するための参考情報があります: http://stackoverflow.com/questions/30227901/internal -server-error-using-points-using-json-in-influxdb – coder

0

JSONを使用してデータを書き込むことは、パフォーマンス上の理由から廃止され、その後削除されました。

GitHubの問題のコメント107043910を参照してください。

+0

はい正しいです。私が問題を投稿した後にこれを見ました。ありがとうございました。 –