我正在使用 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 方言,但输出没有任何变化。谢谢!
最佳答案
您可以使用 Excel 的文本导入向导,可通过以下位置访问:
(2007 年起)“数据”选项卡 >“获取外部数据”>“从文本”
(2007 年之前)“数据”菜单 >“导入外部数据”>“导入数据”
这允许您在步骤 3 中为文件中的每一列指定类型,并将其设置为“文本”而不是“常规”可以避免出现问题。
关于python - csv.Dictwriter 文本输出在 Excel 中未正确解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20475953/