I am roughly following this example. But must be doing something silly…
The server side Django view code:
data_table = gviz_api.DataTable(description)
data_table.LoadData(data)
json = data_table.ToJSon()
return json
These are the values of the variables copy-pasted from the pydev debugger: (Im using strings for each description field type just for testing)
description:
[("sensor","string", "Sensor name"),
("timestamp","string", "Time"),
("value","string", "Sensor value")]
data:
[['testsensor', '2011-05-09 16:06:43.936000', '22.0'],
['testsensor', '2011-05-09 16:56:23.367000', '23.0']]
json (generated by the google api):
{cols:[{id:'sensor',label:'Sensor name',type:'string'},{id:'timestamp',label:'Time',type:'string'},{id:'value',label:'Sensor value',type:'string'}],rows:[{c:[{v:'testsensor'},{v:'2011-05-09 16:06:43.936000'},{v:'22.0'}]},{c:[{v:'testsensor'},{v:'2011-05-09 16:56:23.367000'},{v:'23.0'}]}]}
The client side javascript code that receives the json:
var json_table = new google.visualization.Table(document.getElementById('dataview'));
var json_data = new google.visualization.DataTable(data, 0.6);
json_table.draw(json_data, {showRowNumber: true});
This causes the following error on constructing the DataTable object (second line):
Uncaught Error: Invalid JSON string: {cols:[{id:'sensor',label:'Sensor name',type:'string'},{id:'timestamp',label:'Time',type:'string'},{id:'value',label:'Sensor value',type:'string'}],rows:[{c:[{v:'testsensor'},{v:'2011-05-09 16:06:43.936000'},{v:'22.0'}]},{c:[{v:'testsensor'},{v:'2011-05-09 16:56:23.367000'},{v:'23.0'}]}]}
in default,table.I.js:152
I understood that the whole clue was making sure that the schema format matches the data format but this seems to be the case. It must be something simple.
Unfortunately I can’t comment so this isn’t exactly a full answer, but could you try eval’ing the JSON before trying to use it for the chart?
I think that may have solved this problem for me in the past; it may not be the safest way to go about it, but you could at least try it for testing.
Alternatively, perhaps play with simplejson to dump your json string from the python instead of just returning the gviz string?