BaseHttpServer를 사용하여 기본 파이썬 웹 서버를 설정하고 postgresql 데이터베이스에서 쿼리 데이터를 연습합니다. 모든 것이 순조롭게 진행되고 있지만 SQL 결과를 파싱 할 때 오류가 발생합니다. 다음은 내 코드입니다 :TypeError : 'datetime.timedelta'객체가 반복 가능하지 않습니다. BaseHttpServer 문제
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]'은 (는) 'datetime.timedelta'입니다.이 항목 내에서 '항목'을 가져올 수 없습니다. 어떤 반복을 할 필요가 없다고 생각합니다. 그냥 self.wfile.write ("{0}, {1} ... {9}"형식 (행 [0], 행 [1]) 일 수 있습니다. .. row [9]))'? – GordonsBeard
html 엔티티 ' '('& nbsp'이 아닌)을 사용 하시겠습니까? –
아, 네, 입력 했어야합니다 –