【问题标题】:keep blank cell blank instead of None by python将空白单元格保持为空白而不是由python保持空白
【发布时间】:2013-07-02 19:17:36
【问题描述】:

我有一个这样的访问表(日期格式为 mm/dd/yyyy)

col_1_id-----col_2

2003 年 1 月 1 日

2

3 1/5/2009

4

5 2008 年 3 月 2 日

输出应该是 Co_1 介于 2 到 4 之间的表格(空白单元格必须为空白)

2

3 1/5/2009

4

我尝试使用 sql 查询。输出在空白单元格中打印“无”。我需要空白单元格中的空白。 另一件事是当我试图在另一个表中插入这个值时它只插入 具有日期值的行。代码在获得任何没有日期的行时停止。我需要按原样插入行。

我在 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

`

【问题讨论】:

    标签: python sql database date


    【解决方案1】:

    与其使用为您指定价值的A[i][x],不如简单地添加一个OR 逻辑来消除None 的可能性。

    对于您希望保留为“空白”的任何单元格(假设您的意思是空字符串),比如说A[i][1],就这样做

    A[i][1] or ""

    如果单元格给你None,这将产生空字符串""

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • @woozyking 建议的A[i][1] or '' 语法实际上更好。
      • 为什么,谢谢。尽管从元角度来看,if else 逻辑与人类处理信息的方式相匹配。所以两者都是教育性的,我的更“数字化”:)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多