2016-11-02 6 views
0

Ich erhalte den folgenden Fehler, wenn ich versuche, expensedate zu drucken.TypeError: nicht unterstützte Operandentypen für +: 'datetime.datetime' und 'str'

Traceback (most recent call last): 
    File "expense.py", line 36, in <module> 
    print_expense_month('nov16') 
    File "expense.py", line 31, in print_expense_month 
    print expensedate + " | " + description + " | " + "%.2f" % (cost) 
TypeError: unsupported operand type(s) for +: 'datetime.datetime' and 'str' 

Zeile 34 ist die print Zeile unten. Ich möchte nur das Datum ausdrucken.

while description is not None: 
    expensedate = sheet.cell(row = i, column = COLUMN_DATE).value 
    description = sheet.cell(row = i, column = COLUMN_DESCRIPTION).value 
    cost = sheet.cell(row=i, column=COLUMN_COST).value 

    #expensedate format = 2016-11-01 00:00:00 

    if description is not None: 
     print expensedate + " | " + description + " | " + "%.2f" % (cost) 

    i = i + 1 

Antwort

2

Wenn Sie nur einen Ausdruck wünschen, dann ändern Sie die Druckzeile von

print expensedate + " | " + description + " | " + "%.2f" % (cost) 
01 Auch

zu

print "%s | %s | %.2f" % (expensedate, description, cost) 
1

Ihr Problem ist, dass Sie datetime Typ str hinzufügen möchten. In Python müssen Sie Typen konvertieren.

print str(expensedate) + " | " + description + " | " + "%.2f" % (cost) 

Wenn Sie verschiedene Datums-Zeitformat strftimehttps://docs.python.org/2/library/datetime.html#datetime.date.strftime

Auch würde ich vorschlagen, string's format Verketten statt Zeichenfolge mit verwenden möchten, die mehr Funktion voll ist und keine Problem mit Typen

print "{} | {} | {:.2f}".format(expensedate, description, cost) 
+0

Danke, arbeitete diese. – user1406716

Verwandte Themen