错误:不是JSON可序列化的

时间:2016-06-06 16:09:43

标签: python html json ajax

我的python代码中有这个:

my_list=json.dumps(data_list)
payload = {'data_list' : my_list}
requests.get("http://127.0.0.1:8000/myhorizon/resource_usage/index", 
json=payload)

我使用ajax绘制一条带有my_list信息的曲线:

 <script>
    function diagramme_rectangulaire( ) {
    new ajax().request('http://127.0.0.1:8000/myhorizon/resource_usage/index',
    {
        request: 'GET',
        onresponse: function(response, success) {
            var n = JSON.parse(response);

            var lineGraph = new LineGraph("diagramme");
            for (var i = n.length - 1; i >= 0; i--) {
                lineGraph.addPoint(n[i]['timestamp'], parseInt(n[i]['volume']));
            }
            lineGraph.drawAxis();
            lineGraph.drawLine();
        }
    });

但我得到以下错误:

<type 'exceptions.TypeError'> <Sample {u'user_id': u'a72b91ce68c540ba92b0834c54a145db', u'resource_id': u'instance-000083d6-a39444d0-e670-45dc-b3a8-7f4e86e372e4-tap419f510b-d6', u'timestamp': u'2016-06-06T15:39:39', u'meter': u'network.outgoing.packets', u'volume': 14667405.0, u'source': u'openstack', u'recorded_at': u'2016-06-06T15:39:54.197000', u'project_id': u'52a088c0f53d45f2ba9890cff3a2a69f', u'type': u'cumulative', u'id': u'e12173d8-2bfc-11e6-b3cd-9eb52a95a23d', u'unit': u'packet', u'metadata': {u'instance_id': u'a39444d0-e670-45dc-b3a8-7f4e86e372e4', u'instance_type': u'40', u'mac': u'fa:16:3e:2e:bb:fb', u'fref': u'None', u'name': u'tap419f510b-d6'}}> is not JSON serializable

任何想法PLZ ??

1 个答案:

答案 0 :(得分:0)

您正在将data_list转换为JSON格式,但之后您将其存储在常规Python字典中,而不是 JSON。

您需要先创建字典,然后然后将整个事物转换为JSON。

试试这个:

my_list = {'data_list' : data_list}
payload = json.dumps(my_list)
相关问题