2013-07-04 2 views
3

가 없음 대신나는이 같은 액세스 테이블이 파이썬

col_1_id ----- col_2에는을 (날짜 형식 (mm/dd/yyyy)을한다) 빈 셀 빈을 유지

1 1/1/2003

2

3 2009년 1월 5일

4

5 2008년 3월 2일

출력 (빈 셀이 비어 있어야) Co_1이 2~4 사이 테이블되어야

2

3 2009년 1월 5일

4

나는 SQL 쿼리를 시도했다. 빈 셀에 'None'이 출력됩니다. 나는 빈 칸에 공백이 필요하다. 다른 것은이 값을 다른 테이블에 삽입하려고 시도했을 때만 행에 날짜 값이 삽입됩니다. 코드는 날짜가없는 행을 가져 오면 중지됩니다. 행을 그대로 삽입해야합니다.

내가

import pyodbc 
DBfile = Data.mdb 
conn = pyodbc.connect ('Driver = {Microsoft Access Driver (*.mdb)}; DBQ =' +DBfile 
cursor = conn.cursor() 

sql_table = "CREATE TABLE Table_new (Col_1 integer, Col_2 Date)" 
cursor.execute.sql_table() 
conn.commit() 

i = 0 
while i => 2 and i <= 4: 
    sql = "INSERT INTO New_Table (Col_1, Col_2)VALUES ('%s', '%s')" % (A[i][0], A[i][1]) 
    cursor.execute(sql) 
    conn.commit() 
i = i + 1 
cursor.close 
conn.close 

대신에 대한 값을 지시 A[i][x]를 사용하는`

답변

3

와 파이썬에서 시도, 왜 단순히 None의 가능성을 제거하기 위해 또는 로직을 추가하지. 당신이 "빈"으로 유지하고자하는 셀

은 셀이 당신에게 None을 제공하는 경우 빈 문자열 ""을 얻을 것입니다

A[i][1] or ""

를 수행의가 A[i][1]을 가정 해 봅시다, (당신이 빈 문자열을 의미 가정) .

0

None의 문자열 표현은 실제로는 'None'이며 빈 문자열은 아닙니다. 시도해보십시오 :

"... ('%s', '%s')" % (A[i][0], A[i][1] if A[i][1] else '') 
+1

@woozyking에서 제안한 'A [i] [1] 또는' ''구문은 실제로 더 멋지다. –

+1

왜, 감사합니다. 비록 메타 관점에서 볼 때, if else 논리는 인간의 프로세스가 정보를 잘 나타내는 방식과 일치합니다. 그래서 둘 다 교육, 내 것이 더 '디지털'입니다 :) – woozyking