使用PYODBC的SQL Server更新

时间:2015-10-28 11:49:45

标签: sql-server csv pyodbc

我有一个CSV文件,其中包含' \ N'在一个列下的一些单元格中,标题在SQL Server中定义为int。

我使用pyodbc每天从提供的CSV更新SQL服务器数据。问题是每当我有'N'在CSV文件中然后SQL Server更新导致错误,我必须删除行' \ N'让他们更新。

我有什么方法可以更新' \ N'在SQL Server的int类型列?

以下是代码

if(isset($_POST['submit'])){
    $value = $_POST['value'];
    if (empty($value)) {
        echo "Post value is Empty";
    }
    else
    {
        echo $value;
    }        
}

1 个答案:

答案 0 :(得分:1)

使用list comprehension遍历从csv.reader对象返回的列表,将\n值替换为您指定的默认值(0)。

...
for data_line in reader:
    # substitute 0 if the column value is '\n'
    cur.execute(query, [0 if value == '\n' else value for value in data_line])

请注意,变通方法具有高度针对性,如果出现其他价值替代案例,则难以维护。如果可能的话,我会修复创建输入文件的过程,这样您的处理代码就可以通用化,更具可读性。