【发布时间】:2017-05-15 10:50:06
【问题描述】:
假设我已经有一个 csv 数据库,并且有一个字段 'no','nama','umur'
所以我在控制器中使用此代码生成 data.csv 到 json
import json
def getdata():
rows = db().select(db.csvfile.nama,
orderby=~db.csvfile.nama)
return json.dumps([r.nama for r in rows])
结果是
["rinaldi", "puspita", "percusion", "odong", "hari novena", "dyah", "dorothea", "dito", "danur", "bahtiar", "alex"]
我有创建图表的代码
控制器:
def chart_bars():
data_nama="['alex','tito','dika','dyah','doro','puspita','hari','novena','hariawan','chrisfina','sutrini', 'tanti', 'puspita','alexaxeel']" #Change this dynamically
data_angka="[81,72,73,74,95,65,25,60,65,85,100, 60, 20, 50]" #Change this dynamically
title="Nama Chart"
stitle="web2py end highchats powered"
data_map={}
data_map["angka"]=data_angka
data_map["nama"]=data_nama
data_map['judul']=title
data_map['subjudul']=stitle
chart="""
<script type="text/javascript">
Highcharts.setOptions({
lang:{
downloadJPEG: "Download JPG",
downloadPDF: "Download PDF",
downloadPNG: "Download PNG",
downloadSVG: "Download SVG",
loading: "loading...",
noData: "Tidak ada data yang ditampilkan",
printChart: "Cetak Chart",
}
});
// Build the chart
$('#chart').highcharts({
chart: {
type: 'column'
},
title: {
text: '%(judul)s'
},
subtitle: {
text: '%(subjudul)s'
},
xAxis: {
categories: %(nama)s,
crosshair: true
},
yAxis: {
min: 0,
title: {
text: 'pencapaian target penjualan per hari'
}
},
tooltip: {
headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
'<td style="padding:0"><b> {point.y:.1f} box/hari </b></td></tr>',
footerFormat: '</table>',
shared: true,
useHTML: true
},
plotOptions: {
column: {
pointPadding: 0.2,
borderWidth: 0
}
},
credits:{enabled:false},
series: [{
name: 'Sales & Marketing',
data: %(angka)s
}]
});
</script>
""" %data_map
return dict(chart=XML(chart))
查看:
{{extend 'layout.html'}}
<script src="{{=URL("static", "js", args="highcharts.js")}}" type="text/javascript"></script>
<script src="{{=URL("static", "js", args="exporting.js")}}" type="text/javascript"></script>
<div id="chart"></div>
{{=chart}}
问题: 1.从我之前生成的JSON数组中,我如何将该数组放入
def chart_bars():
data_nama="[]"
data_angka="[]"
我对显示“”而不是“”来分隔字符串的代码和 JSON 的结果感到困惑?
提前致谢
【问题讨论】:
-
通过使用 json.dumps 和 as.list() 解决,但我还有一个问题,数据显示所有记录但我想合并相同的记录,例如:“str1”、“str1” ”、“str2”、“str2”。我想像这样显示“str1”、“str2”
标签: python arrays json csv highcharts