所以我在过去几天一直在努力解决这个问题。我需要上传一个大约有25列的CSV文件。将50K行放入SQL Server表(# on a first ssh session, which gets pts/0 :
sleep 10
# on a second ssh session :
pgrep -t "pts/0"
1234 # the first session's bash process
5678 # the first session's sleep process
)中,该表还包含25列,相同的列名和列。以相同的顺序。
这是CSV文件中的行:
zzzOracle_Extract
所以总共有25列,其中一些值为空。也许这会导致错误。这是我的代码:
['M&M OPTICAL SHOP', '3001211', 'SHORE', '*', 'PO BOX 7891', '', '', '', 'GUAYNABO', 'GUAYNABO', 'PR', '0090', 'United States', '24-NSH RETAIL CUSTOMER', 'SH02-SHORE COLUMN 2', '3001211', '*', '*', '*', '3001211744-BILL_TO', '', '', '', '', 'RACHAEL']
执行脚本后,我得到的一个错误如下:
import csv
import pymssql
conn = pymssql.connect(
server="xxxxxxxxxx",
port = 2433,
user='SQLAdmin',
password='xxxxx',
database='NasrWeb'
)
with open('cleanNVG.csv','r') as f:
reader = csv.reader(f)
columns = next(reader)
query = 'insert into dbo.zzzOracle_Extract({0}) Values({1})'
query = query.format(','.join(columns),','.join('?' * len(columns)))
cursor = conn.cursor()
for data in reader:
print(data) #What a row looks like
cursor.execute(query,data)
cursor.commit()
cursor.close()
print("Done")
conn.close()
我的代码有什么问题?我非常感谢你的帮助!
答案 0 :(得分:1)
如何将[]加入我的代码中的每一列?
所以你有类似
的东西>>> columns = ['ID','Last Name','First Name']
您目前正在使用
>>> ','.join(columns)
'ID,Last Name,First Name'
但现在需要将列名包装在方括号中。这可以用
完成>>> ','.join('[' + x + ']' for x in columns)
'[ID],[Last Name],[First Name]'