从SQL将表输出为csv格式,并在列周围添加引号

问题描述

我想以csv的形式从sql输出一个表,但是我想在最后一列的周围加上引号。

我在sql中拥有的表的名称为dbo.temp_table:

enter image description here

我想要的输出一个csv文件,该文件在记事本中打开时,最后一列带有双引号:

enter image description here

当我使用以下python代码时:

import pandas as pd
import numpy as np
import pyodbc
import pandas as pd 
import xlsxwriter
import csv


sql_conn = pyodbc.connect('DRIVER={DRIVER NAME}; SERVER=DATABASE_NAME; DATABASE=MY_DATABASE; Trusted_Connection=yes') 

query = "select * from dbo.temp_table"     
                                       
df = pd.read_sql(query,sql_conn)


file_out = 'C:\\Desktop\\TestFolder\\TestFile.csv'

df.to_csv(file_out,index = False,header=True)

我得到以下输出(在记事本中打开csv时):

enter image description here

我还尝试在python代码的实际查询添加引号:

import pandas as pd
import numpy as np
import pyodbc
import pandas as pd 
import xlsxwriter
import csv


sql_conn = pyodbc.connect('DRIVER={DRIVER NAME}; SERVER=DATABASE_NAME; DATABASE=MY_DATABASE; Trusted_Connection=yes') 

query = """select [name],'"' + [code] + '"' AS [code]
        from dbo.temp_table    """  
                                       
df = pd.read_sql(query,header=True)

但是我得到的输出在最后一列有3个双引号:

enter image description here

我认为一个解决方案可能是在python代码中实际添加引号,但是我在网上看到的所有问题似乎都无法回答我的问题。非常感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)