2016-04-07 5 views
0

私はデータベースからデータを取り込み、data['datetime'] JSONをシリアライズしてDjangoからHighchartsに渡そうとしています。私の方法はうまくいくと思ったが、そうでないようだ。私が現時点で得ているエラーは、関数json_serialから条件を渡していないので、Type not serializableです。 dict ['key']がこのような論理パラメータを渡すと思うまで、私は間違って何をしていますか?データベースからデータを引き出し、JSONをシリアライズ可能にする

from .models import Heater 
import json 
from datetime import datetime 

def json_serial(obj): 
"""JSON serializer for objects not serializable by default json code""" 

    if isinstance(obj, datetime): 
     serial = obj.isoformat() 
     return serial 
    raise TypeError ("Type not serializable") 

class ChartData(object):  
    def check_heater_data(self): 
     data = {'datetime': [], 'temp_max': [], 
       'temp_min': []} 

     valves = Heater.objects.all() 

     for unit in valves: 
      data['temp_max'].append(unit.temp_max) 
      data['temp_min'].append(unit.temp_min) 
      data['datetime'] = json_serial(data['datetime'].append(unit.datetime)) 

     jsonstring = json.dumps(data) 
     jsondata = json.loads(jsonstring) 

     return jsondata 

答えて

0

あなたはjson_serial関数にlistオブジェクトを渡しているので。

ここに:json_serial(data['datetime'].append(unit.datetime))、明らかにdatetimeのインスタンスではありません。

data['datetime'].append(json_serial(unit.datetime))のように変更してください。

関連する問題