2016-04-07 18 views
0

Veritabanından bazı verileri almaya çalışıyorum ve Django'dan Highcharts'a aktarmak için data['datetime'] JSON seri hale getirilebilir yapıyorum. Yöntemimin işe yarayacağını düşündüm, ama öyle değil. Şu anda alıyorum hatası, koşul json_serial işlevinden geçmiyor, çünkü Type not serializable olduğunu. Neyi yanlış yapıyorum, şu ana kadar bu mantık parametresini ['anahtar'] geçeceğini düşündüm mü?Veritabanından veri çekme ve JSON serileştirilebilir hale getirme

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 

cevap

0

Eğer json_serial işlevine list nesneyi geçiyoruz çünkü.

Burada: datetime'un bir örneği olmayan json_serial(data['datetime'].append(unit.datetime)).

Böyle bir şeye değiştirmeyi deneyin: data['datetime'].append(json_serial(unit.datetime)).

İlgili konular