agiliq / django-graphos

Django charting made *really* easy.
http://agiliq.com/demo/graphos
BSD 2-Clause "Simplified" License
442 stars 97 forks source link

zip object is not JSON serializable when generating graph #36

Closed timothyleung closed 8 years ago

timothyleung commented 8 years ago

By following the tutorial, I have the following set up

# view 
def salesboard(request):
    # render the graph here
    data =  [
            ['Year', 'Sales', 'Expenses'],
            [2004, 1000, 400],
            [2005, 1170, 460],
            [2006, 660, 1120],
            [2007, 1030, 540]
        ]
    chart = flot.LineChart(SimpleDataSource(data=data), html_id="Line Chart")
    return render_to_response('scoreboard.html', {'chart':chart})

Template {{ chart.as_html }}

Error

Error during template rendering

In template C:\Users\TIMLEU~1\Desktop\SYSTEM~1\sp-venv\lib\site-packages\graphos\templates\graphos\flot.html, error at line 4
<zip object at 0x00000052AAC8D448> is not JSON serializable
1   <div id="{{ chart.html_id }}" style="width:{{ chart.width }}px;height:{{ chart.height }}px;"></div>
2   <script type="text/javascript">
3   $(function () {
4       data{{ chart.html_id }} = {{ chart.get_series_objects_json|safe }}
5       $plot{{ chart.html_id }} = $.plot(
6           $("#{{ chart.html_id }}"),
7           data{{ chart.html_id }},
8           {{ chart.get_options_json|safe }}
9       );
10  });
11  </script>
e78908b943c8 commented 8 years ago

I'm having the same issue with python3.4 I did some digging and found that get_serieses in BaseFlowChart is storing the result of zip which then gets json serialized. image The problem is that the zip method in python 2 returns a list of tuples whereas in python 3 a zip object is returned. The zip should be converted to a list as such. image

timothyleung commented 8 years ago

Yup Thats what I did to fix it as well! Feel like we should create a pull request for this

AuxProc commented 8 years ago

Pull request https://github.com/agiliq/django-graphos/pull/32 takes care of this.

I've included this pull request in my fork at https://github.com/ModusVivendi/django-graphos and also on pip at django-graphos-3.

akshar-raaj commented 8 years ago

@timothyleung @e78908b943c8 @ModusVivendi @sheepeatingtaz PR https://github.com/agiliq/django-graphos/pull/32 has been merged and updated code has been uploaded to Pypi. With recent "pip install django-graphos" this issue should be resolved.