首页 > 解决方案 > 在 Python 中使用 None 类型的条件语句未按计划进行

问题描述

此脚本根据日期在表中插入“NULL”值。但是还有另一个表包含“NULL”值,具体取决于它是否已发送。在这种情况下,它还没有被发送,所以我想忽略它们。但是代码继续并给了我这个回溯:

Traceback 如下:

Traceback (most recent call last):
   File "C:\projects\docs\script.py", line 43, in <module>
     if dr3 < date_sql[0] < dt:
TypeError: '<' not supported between instances of 'datetime.datetime' and 'NoneType'

苦苦挣扎了很长时间,非常感谢您的指导,因为我试图找到解决方案。

Python代码是:

import pyodbc
from datetime import date, datetime
import dateutil.relativedelta

conn = pyodbc.connect(
r'DRIVER={SQL Server};'
r'SERVER=server;'
r'DATABASE=db;'
)

dt = datetime.today()
dr3 = dt - dateutil.relativedelta.relativedelta(months=3)

cursor = conn.cursor()

sent_date = cursor.execute("""SELECT sent_date, id
              FROM Department.Documents""")


def fetch_date():
   for row in sent_date:
       r = row
   return r


date_sql = fetch_date()


if sent_date != None:
   if dr3 < date_sql[0] < dt:
      try:
         value = None
         cursor.execute("""UPDATE Department.Customer SET name=?, address=?, email=?, 
                      phone=?""", (value, value, value, value))

         cursor.commit()

      except pyodbc.Error as ex:
         print(str(ex))

         cursor.rollback()

else:
  cursor.close()
  print("Connection closed")

标签: pythonpython-3.x

解决方案


推荐阅读