json 형식에서 Decimal type이 있어 생기는 오류 였다.
이는 sqlalchemy query 결과로 나온 값이었는데, 이를 float로 변환하니 제대로 동작하는 것을 확인하였다.
Code
이해를 위해 사용된 함수 전체 코드를 첨부한다.
@app.route('/api/v1/sensordata', methods=['POST'])
def sensordata_get_api():
data = json.loads(request.data)
params = ['bid','dataname', 'days']
for param in params:
if param not in data:
return make_response(jsonify('Parameters are not enough.'), 400)
json_data = []
for i in data['days'] :
sensordata_list = []
dev = db.session.query(--생략--).all()
for b in dev :
resultJSON = {
"x": b.x,
"y": float(b.y) # b.y 값이 Decimal로 나오기 때문에 float로 변환
}
sensordata_list.append(resultJSON)
json_data.append({"date": i, "value": sensordata_list})
result = {
"result": "OK",
"data": json_data
}
return make_response(jsonify(result), 200)