【问题标题】:How to import JSON data to Chart Array in web2py (Python)如何在 web2py (Python) 中将 JSON 数据导入图表数组
【发布时间】: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


【解决方案1】:

使用json.dumpsas.list()解决

【讨论】:

    猜你喜欢
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 2019-12-05
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多