我正在尝试从数据库中提取一些数据并使data['datetime']
JSON可序列化以将其从Django传递给Highcharts。我认为我的方法可行,但似乎没有。我现在得到的错误是Type not serializable
,因为它没有从函数json_serial传递条件。我做错了什么,直到现在我还以为dict ['key']会传递这样的逻辑参数?
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 :(得分:0)
因为您正在将list
对象传递给json_serial
函数。
此处:json_serial(data['datetime'].append(unit.datetime))
,显然不是datetime
的实例。
尝试将其更改为:data['datetime'].append(json_serial(unit.datetime))
。