在Excel中csv.Dictwriter文本输出没有正确parsing

我正在使用csv.DictWriter来输出在Excel中使用的字典的列表。 缩小到只有一个键/值对,它看起来像这样:

from csv import DictWriter results = [{'symbol': '00287Y10', {'symbol': '03073E10'}, {'symbol': '03783310'}] with open('results.csv','wb') as outfile: ordered_fieldnames = ['symbol'] writer = DictWriter(outfile, dialect='excel', fieldnames=ordered_fieldnames) writer.writeheader() writer.writerows(results) 

问题在于excel不能解释为文本。 所有的数字都被转换成一个数字,而以E10结尾的符号被parsing为科学记数法:

 symbol 00287Y10 3.07E+13 3783310 

所以我从其他职位的理解是,你不能指定在Excel中从csv库中的具体数字格式,但有没有解决方法,以便Excel作为文本字段统一parsing符号? 我想这样做,而不是为了search的目的而改变字段的值。 另外请注意我已经尝试使用不同的分隔符和引用级别,而不是Excel方言,但看到输出中没有变化。 谢谢!

您可以使用Excel的文本导入向导,可在以下位置访问:

  1. (从2007年起)数据选项卡>获取外部数据>来自文本

  2. (2007年以前)“数据”菜单>“导入外部数据”>“导入数据”

这允许您在第3步中为文件中的每一列指定一个types,并将其设置为文本而不是常规,以避免您的问题。