2013-12-20 3 views
0

안녕하세요 저는 Python 및 ODBC 데이터베이스, 즉 Microsoft 액세스를 사용하고 있습니다. 나는 출력을 얻고있다형식화 된 출력을 얻는 방법

(u'EXPANDx TB', 12.0, 10.0, 11.0, 13.0, 0.0, 46.0) 
(u'EXPANDx TB & GFATM', 1.0, 1.0, 0.0, 1.0, 0.0, 3.0) 
(u'EXPANDx TB & NRHM', 0.0, 0.0, 1.0, 0.0, 0.0, 1.0) 
(u'GFATM', 1.0, 1.0, 0.0, 0.0, 0.0, 2.0) 
(u'WHO', 3.0, 7.0, 3.0, 5.0, 0.0, 18.0) 
(u'GFATM & EXPANDx TB', 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) 

여분의 용어 "u"가 표시된다. 나는 또한 그냥 string에 각 항목을 변환

print ",".join(table1) 
TypeError: sequence item 1: expected string or Unicode, float found 
please help me out with this. Thanks in advance. 


#!/usr/bin/python 
import pyodbc 

db_file = r'''C:\Users\Basavaraj\Documents\C&DST.accdb''' 
user = '' 
password = '' 
odbc_conn_str = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;UID=%s;PWD=%s' % \ 
      (db_file, user, password) 
conn= pyodbc.connect(odbc_conn_str) 
#for row in cursor.fetchall(): 
# print row[2] 
try: 
    cursor = conn.cursor() 
    cursor.execute("select * from Table1") 
    for table1 in cursor.fetchall(): 
    print ",".join(table1) 

finally: 
    conn.close() 

`

+0

'u'foo''이는 유니 코드 개체를 의미합니다. 하지만 코드 줄 수 있어요? 쿼리 결과는 반복 가능한 객체 일 수 있으며 for 루프를 사용할 수 있습니다. – atupal

+1

'print ','. join (map (str, table))' – falsetru

+0

감사합니다. falsetru 덕분에 ... – user2470026

답변

0

같은 오류가 조인 기능 만 사용했다. 다음, 그대로 당신이 unicode 항목을 유지하려면

print ",".join(str(i) for i in table1) 

는 :

print ",".join(str(i) if not isinstance(i, unicode) else i for i in table1) 
+0

내부 목록이 필요 없습니다. –

관련 문제