TypeError:'datetime.datetime " Objekt ist nicht subscriptable
#!/usr/bin/env python
# coding: utf-8
import MySQLdb
import os,sys
import time
import datetime
from pyExcelerator import *
def main():
'''get datas from mysql to excel'''
w=Workbook()
ws=w.add_sheet('user')
mysql_conn=MySQLdb.connect(................,charset="utf8")
cursor=mysql_conn.cursor()
cursor.execute("select * from students")
results=cursor.fetchall()
results_count=len(results)
cursor.close()
mysql_conn.close()
a=results_count-1
print a
#print results
row=0
for r in results:
r3=[(x[0:2],x[2],x[3:]) for x in r]
w3=datetime.strptime("%Y-%m-%d %H:%M:%S")
[ws.write(x[0:2],i) for i in r3]
[ws.write(w3,i) for i in r3]
[ws.write(x[3:],i or '') for i in r3]:
row+=1
w.save('data.xls')
if __name__ == "__main__":
main()
Möchte ich die Daten aus mysql in excel ,aber
r3=[(x[0:2],x[2],x[3:]) for x in r]
gibt mir TypeError:'datetime.datetime' object is not subscriptable
.
Ich weiß nicht, wie ich gerade studiere, nur 3 Woche, mir bitte helfen?
InformationsquelleAutor user1477974 | 2012-06-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
x
ist eindatetime.datetime
Objekt, das nicht mit der [] - notation, wie inx[0:2]
.Bedeutet es, dass eine der Spalten enthält ein Datum-Objekt, das müssen analysiert werden, unterschiedlich.
InformationsquelleAutor Simon Bergot
Erstens, Sie wollen nicht zu sein mit pyExcelerator - es ist alt und wurde nicht aktualisiert, in 3 Jahren (und wurde abgelöst).
Was Sie verwenden sollten, ist der Dienstprogramme auf http://www.python-excel.org/ und diese bietet Funktionen für die Arbeit mit datetimes. Excel speichert diese als schwebt da eine bestimmte Epoche. Für info https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html - unter der Rubrik "Termine in Excel-Tabellen". Siehe auch https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html#xldate.xldate_as_tuple-function für wie konvertieren einer excel-Darstellung von einem Datum zu einem standard-python-datetime.
Wenn Sie easy_install/pip xlutils, erhalten Sie beide die xlrd (Lesen) und xlwt (schreiben) Bibliotheken. Bis zu version 2003-Dateien werden unterstützt, aber 2007+ (.xlsx-Datei) - Unterstützung ist in der Nähe kommen aus der beta.
Bearbeiten
Vergessen zu erwähnen, dass https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html beschreibt, wie die xlwt Bibliothek kann eine
datetime.dateime
und wandeln diese in eine Excel-Zelle.XFStyle()
style-Objekt beim schreiben in die Zelle;style = XFStyle(); style.num_format = "YYYY-MM-DD"
oder ähnliches.InformationsquelleAutor Jon Clements
Eines der Felder in der Tabelle scheint zu enthalten
datetime
ObjekteMySQLdb
gibt auch Ihnen alsdatetime
. Wahrscheinlich möchten Sie Sie konvertierendatetime
zustr
ersten. Diese Zeile scheint ein Teil derdatetime
durch die Verwendung von Scheiben. Sie könnte das gleiche zu erreichen mitdatetime.strftime
.InformationsquelleAutor Lev Levitsky