2017-02-17 3 views
1
def index(request): 
    conn = MySQLdb.connect(host="localhost", user="user", passwd="pwd", db="highchart_with_django") 
    cursor = conn.cursor() 
    cursor.execute("SELECT categories,tokyo,london,new_york,berlin FROM basic_line_chart") 
    row = cursor.fetchone() 
    while row is not None: 
     print row 
     row = cursor.fetchone() 
    return render(request, "linechart.html") 

mit Es gibt eine Ausgabe wie folgt:Wie Daten als Array-Format anzuzeigen Python

('Sep', Decimal('7.00'), Decimal('3.90'), Decimal('-0.20'), Decimal('-0.90')) 
('Oct', Decimal('6.90'), Decimal('4.20'), Decimal('0.80'), Decimal('0.60')) 

erwartete Ausgabe:

["Sep", "7.00", "3.90", "-0.20", "-0.90"],["Oct", "6.90", "4.20", "0.80", "0.60"] 

Wie kann ich dies erreichen. Bitte hilf mir dabei.

Antwort

1

blind alles in Strings konvertiert werden (weil Sie nicht spezifisch gewesen):

def index(request): 
    conn = MySQLdb.connect(host="localhost", user="user", passwd="pwd", db="highchart_with_django") 
    cursor = conn.cursor() 
    cursor.execute("SELECT categories,tokyo,london,new_york,berlin FROM basic_line_chart") 
    rows = [[str(field) for field in row] for row in cursor] 
    for row in rows: 
     print(row) 
    return render(request, "linechart.html") 

Ich bin nicht sicher, das Ihr Problem löst. Möchten Sie alle Decimal in Zeichenfolgen konvertiert? Eine Art Gleitkommazahl ist wahrscheinlich für das Chartern nützlicher.

+0

jede Zeile seperate mit Komma. wie geht das? –

+0

Versuchen Sie 'print (rows)'. Ist es das was du willst? –

1

Nach diesem Link http://mysql-python.sourceforge.net/MySQLdb.htmlfetchone() gibt ein Tupel zurück.

Um das in eine Liste zu konvertieren, müssen Sie es einfach umwandeln.

row = list(cursor.fetchone()) 

Sie können die Liste dann durchlaufen, um sie im richtigen Format zu erhalten, das Sie suchen.

1

Ihre Frage ist nicht 100% klar, aber wenn Sie wirklich nur eine Liste von Strings zu erhalten versuchen:

>>> for row in cursor.fetchall(): 
...  print [str(col) for col in row] 
... 
['Sep', '7.00', '3.90', '-0.20', '-0.90'] 
['Oct', '6.90', '4.20', '0.80', '0.60'] 
0

bitte versuchen Sie es

row = cursor.dictfetchall() #which dict

row = cursor.fetchall() gibt # gibt eine Liste.

Ausgang: -

["Sep", "7.00", "3.90", "-0.20", "-0.90"],["Oct", "6.90", "4.20", "0.80", "0.60"] 
1

Try this: -

def index(request): 
    conn = MySQLdb.connect(host="localhost", user="user", passwd="pwd", db="highchart_with_django") 
    cursor = conn.cursor() 
    cursor.execute("SELECT categories,tokyo,london,new_york,berlin FROM basic_line_chart") 
    row = cursor.fetchone() 
    while row is not None: 
     print row 
     row = list(cursor.fetchone()) 
    return render(request, "linechart.html") 
Verwandte Themen