我有一个从数据库转储数据到一个CSV通过Python的CSV作家文件的脚本(更准确地说,unicodecsv)演员列文本或前缀与撇号当用Python编写一个CSV文件2.7
我问题是我有一列需要作为文本或前缀转换为撇号,因为它是一个16位数字,在Excel中查看时其格式为科学。否则,代码完美无缺。列名称简称为“值”。任何干净的方式来实现这一目标
def dump(self, sql, filename, include_headers=True):
f = unicodecsv.writer(file(filename + ".csv", 'wb'), dialect=unicodecsv.excel, quoting=unicodecsv.QUOTE_ALL)
cnxn = pyodbc.connect(self.connect_string)
c = cnxn.cursor()
c.execute(sql)
if include_headers:
f.writerow([d[0] for d in c.description])
for row in c.fetchall():
f.writerow(row)
# f.close()
cnxn.close()
你可以构造一个查询,将返回该列从数据库字符串? – wwii
或者遍历行并替换违规值:[https://code.google.com/archive/p/pyodbc/wikis/Rows.wiki](https://code.google.com/archive/p /pyodbc/wikis/Rows.wiki) – wwii
我用你的建议去了,并在SQL代码前加了一个撇号,它的工作原理就是......。撇号显示在Excel中,而不是像往常一样简单地格式化单元格,我可以与之一起生活。我宁愿在Python级别执行此操作,但它可以工作。 感谢您的协助。 –