Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Caught TypeError while rendering: __init__() got an unexpected keyword argument 'use_decimal'

While running the program i am getting the following error message

Caught TypeError while rendering: __init__() got an unexpected keyword
argument 'use_decimal'

Here is my code i am using jquery 1.6.4

def load_charts(chart_list=None, render_to=''):
    embed_script = (
      '<script type="text/javascript">\n'
      'var _chartit_hco_array = %s;\n</script>\n'
      '<script src="%s" type="text/javascript">\n</script>')

    if chart_list is not None:
        if isinstance(chart_list, (Chart, PivotChart)):
            chart_list = [chart_list]
        chart_list = [c.hcoptions for c in chart_list]
        render_to_list = [s.strip() for s in render_to.split(',')]
        for hco, render_to in izip_longest(chart_list, render_to_list):
            if render_to:
                hco['chart']['renderTo'] = render_to
        embed_script = (embed_script % (simplejson.dumps(chart_list, 
                                                         use_decimal=True),
                                        CHART_LOADER_URL))
    else:
        embed_script = embed_script %((), CHART_LOADER_URL)
    return mark_safe(embed_script)
like image 475
ritvik Avatar asked Dec 27 '11 11:12

ritvik


2 Answers

The signature of simplejson.dumps is (see documentation):

dumps(obj, skipkeys=False, ensure_ascii=True, 
      check_circular=True, allow_nan=True, cls=None)

as you can see there is no use_decimal parameter... yet you are calling it like this:

simplejson.dumps(chart_list, use_decimal=True)

EDIT: Actually a bit more digging brought up this other documentation. It seems that the use_decimal parameter was added somewhere along the version of simplejson library... I would suggest to upgrade you library version to the latest available one then!

like image 111
mac Avatar answered Nov 19 '22 03:11

mac


To save another soul the agonizing hours spent.

    pip install simplejson

NB: This should be done in your project virtual env.

like image 32
sista_melody Avatar answered Nov 19 '22 03:11

sista_melody