csv.Dictwriter文本输出未在Excel中正确解析

时间:2013-12-09 16:47:54

标签: python excel csv

我正在使用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结尾的符号将被解析为科学记数法:

symbol
00287Y10
   3.07E+13
    3783310

所以我从其他帖子的理解是你不能在csv库中指定excel中的特定数字格式,但有没有解决方法以便Excel将符号统一解析为文本字段?我想这样做而不用为搜索目的更改字段的值。另请注意我已尝试使用不同的分隔符和引用级别而不是excel方言,但看不到输出的变化。谢谢!

1 个答案:

答案 0 :(得分:2)

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

  1. (2007年起)数据标签>获取外部数据>来自文本

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

  3. 这允许您在步骤3中为文件中的每个列指定类型,并将其设置为“文本”而不​​是“常规”可以避免出现问题。