我正在尝试使用Python下载报告并将其另存为CSV文件。我无法弄清楚的一个问题是如何让CSV文件中的数据没有引号。当这些文件最终在Excel中使用时,所有列都被格式化为文本,而不是数字。
CSV文件中的示例行: “Branch Banking& Trust Company”,“Inside Sales”,“USD”,“10.00”
以下是我正在使用的代码:
from simple_salesforce import Salesforce
import requests
import base64
import json
import sys
sf = Salesforce(username="email"
,password="password"
,security_token="token")
#print "get sid " + str(sf.session_id)
sid = str(sf.session_id)
urlin = "https://na52.salesforce.com/" + sys.argv[1] + "?
view=d&snip&export=1&enc=UTF-8&xf=csv"
response = requests.get(urlin,
headers = sf.headers, cookies = {'sid' : sid})
#response.contents
print response.content
非常感谢您提供的任何帮助,以保存没有这些引号的CSV文件。
以下是该过程的下一步,它将csv文件转换为excel并保存。
import csv
import sys
from openpyxl import Workbook
from openpyxl.cell import get_column_letter
nfilename = sys.argv[1]
print(nfilename)
nfilename2 = sys.argv[2]
print(nfilename2)
f = open(nfilename, 'r')
csv.register_dialect('commas', delimiter=',')
reader = csv.reader(f, dialect='commas')
#sys.argv[1]
wb = Workbook()
dest_filename = nfilename2
ws = wb.worksheets[0]
ws.title = "Sheet 1"
for row_index, row in enumerate(reader):
for column_index, cell in enumerate(row):
column_letter = get_column_letter((column_index + 1))
ws.cell('%s%s'%(column_letter, (row_index + 1))).value = cell
wb.save(filename = dest_filename)