用Python保持空单元格为空,而不是为None。

3
我有一个访问表格,格式如下(日期格式为mm/dd/yyyy)
col_1_id-----col_2
1 1/1/2003
2
3 1/5/2009
4
5 3/2/2008
输出应该是一个表格,其中Co_1在2到4之间(空单元格必须为空)
2
3 1/5/2009
4
我尝试使用SQL查询。结果在空单元格中打印“None”。我需要空白的空单元格。 另一件事是,当我尝试将此值插入到另一个表中时,它只会插入具有日期值的行。代码在获取任何没有日期的行时停止。我需要按原样插入行。
我在Python中尝试过。
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

`

2个回答

3

不要使用 A[i][x] 来确定值,为什么不简单地添加一个 OR 逻辑来消除 None 的可能性。

对于您希望保留为空白的任何单元格(假设您指的是空字符串),比如说 A[i][1],只需执行以下操作:

A[i][1] or ""

如果该单元格返回 None,则将产生空字符串 ""


0

None 的字符串表示实际上是 'None',而不是空字符串。请尝试:

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

1
@woozyking 建议的 A[i][1] or '' 语法实际上更好。 - Dan Gittik
1
谢谢。从元角度来看,if else逻辑匹配了人类更好地处理信息的方式。因此两种方法都是有教育意义的,我的方法更加数字化 :) - woozyking

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接