2017-05-15 5 views
0

wird angenommen, dass ich bereits eine CSV-Datenbank haben, und ein Feld haben 'Nein', 'Nama', 'umur'Wie JSON-Daten importieren Array in web2py (Python) Chart

Also ich data.csv zu json erzeugt mit diesem Code in der Steuerung

import json 
def getdata(): 
    rows = db().select(db.csvfile.nama, 
         orderby=~db.csvfile.nama) 
    return json.dumps([r.nama for r in rows]) 

und das Ergebnis ist

["rinaldi", "puspita", "percusion", "odong", "hari novena", "dyah", "dorothea", "dito", "danur", "bahtiar", "alex"] 

und ich habe Codetabelle erstellen

Controller:

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)) 

Ansicht:

{{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}} 

Frage: 1. aus dem JSON-Array, bevor i erzeugt, wie ich feststellen, dass gestellt hatten in

def chart_bars(): 
    data_nama="[]" 
    data_angka="[]" 

Ich bin fest mit dem Code und dem Ergebnis von JSON, die "" nicht "" anzeigen, um die Zeichenfolge zu begrenzen?

Vielen Dank im Voraus

+0

gelöst mit json.dumps und as.list(), aber ich habe eine andere Frage, die Daten zeigen alle Datensätze, aber ich möchte den gleichen Datensatz zusammenführen, zB: "str1", "str1", "str2", "str2". Ich möchte so "str1", "str2" zeigen – alexaxeel

Antwort

0

von json.dumps und as.list() mit gelöst, aber ich habe eine andere Frage, zeigen die Daten, die alle Rekord, aber ich möchte denselben Datensatz fusionieren, ex: „str1“, „str1“, " str2 "," str2 ". Ich möchte so zeigen "str1", "str2"