我对 Python 还是很陌生,直到这个当前的项目(甚至可能不是最好的方法)才真正与 SQL Server 和 XML Parsing 进行交互。长话短说,我的 IT 团队积压很多,我需要将数据放入沙箱表(从 XML 解析)。
有一段 XML 包含属性 [xx]001 到 [xx]025。并非所有这些属性都包含在我将要解析的每个 XML 中。因此,我遍历所有可能属性的循环并将结果附加到列表中。由于并非所有属性都在每个 XML 中,因此我可以通过尝试表示每个属性来招致 noneTypes。在创建我需要将它们转换为 NULL 的 SQL 插入语句之前,这不是问题。可能有一些非常简单的方法来处理这个问题,但是我的新手状态阻碍了我的进步。相关的代码片段如下...
一般来说,也许有更好的方法来做到这一点?我担心 sqlList 可能只能在我达到限制之前变得如此之大。
#this list contains Nones
sqlList = (", ".join(map(repr,appendedList)))
#the Nones are an issue when I get to here
curs.execute("USE Sandbox INSERT INTO myTable VALUES (%s)" % (sqlList))
curs.commit()
以下是 sqlList 的示例:
'20_2014', '20_2014_3/25/2015 2:01 PM', 'FBR', 'A', '0', '0', '3', '1', '134', None, None, '0', None, '0', '0', '0', '0', '0', None, None, '2', None, None, None, None
我收到以下错误消息:
pypyodbc.ProgrammingError: ('42S22', "[42S22] [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'None'.")