Я установил базовый веб-сервер python с помощью BaseHttpServer и практикую запросы данных из базы данных postgresql. Все идет плавно, но у меня ошибка при анализе результатов SQL. Вот мой код:ТипError: объект 'datetime.timedelta' не является итерируемым-BaseHttpServer issue
cur=con.cursor()
cur.execute(('select * from stop_times as a, stop_times as b where a.train_id=b.train_id and a.station_name = %s and b.station_name= %s and a.arrival_time < b.arrival_time'), (origin_name, dest_name))
self.wfile.write("Train Number     Starting Station     Destination Station     Departure Time     Arrival Time <br />")
while True:
row=cur.fetchone()
if row==None:
break
print row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8]
for item in row[0]:
self.wfile.write("%s"% item)
self.wfile.write("                      ")
for item in row[3]:
self.wfile.write("%s"% item)
self.wfile.write("              ")
for item in row[8]:
self.wfile.write("%s"% item)
self.wfile.write("       ")
for item in row[2]:
self.wfile.write("%s"% item)
self.wfile.write("   ")
Заявления печати есть для отладки на консоль, и это дает правильный вывод:
427 10:23:00 10:23:00 San Antonio 6 427 11:08:00 11:08:00 Millbrae
429 11:23:00 11:23:00 San Antonio 6 429 12:08:00 12:08:00 Millbrae
431 12:23:00 12:23:00 San Antonio 6 431 13:08:00 13:08:00 Millbrae
Я просто пытаюсь вывод некоторых столбцов в Интернет страницы, и, когда я получаю, что последний цикл для ряда [2] Я получаю эту ошибку:
File "./caltrainServer.py", line 129, in performQuery
for item in row[2]:
TypeError: 'datetime.timedelta' object is not iterable
я проверил, и эти столбцы в моей базе данных имеют интервал типа. Как я повторяю их, как и в других столбцах, которые были типа varchar?
'row [2]' is 'datetime.timedelta', вы не можете получить «элемент» изнутри (поскольку он только имеет). Я не думаю, что вам нужно делать какие-либо итерации, вы могли бы просто «self.wfile.write» («{0}, {1} ... {9}». Format (строка [0], строка [1]. .. строка [9])) '? – GordonsBeard
Вы намеревались для html-объекта ' ' (а не '& nbsp')? –
А, да, я бы набрал –