Python csv模块返回第一列的BOM表
我有一个如下格式的csv文件:Python csv模块返回第一列的BOM表,python,python-3.x,csv,unicode,Python,Python 3.x,Csv,Unicode,我有一个如下格式的csv文件: 类型,类型映射,样式,样式映射,计数 住宅,住宅,古董,古董,109 古董,住宅,古董,古董,48 公寓/车库、商业、公寓/车库、公寓、1 我正在使用Python(版本3)中的csv模块对其进行解析。这是我的密码: import os import csv typeXref = dict() with open('xref.csv') as csvData: csvRead = csv.reader(csvData) headers = nex
类型,类型映射,样式,样式映射,计数
住宅,住宅,古董,古董,109
古董,住宅,古董,古董,48
公寓/车库、商业、公寓/车库、公寓、1
我正在使用Python(版本3)中的csv模块对其进行解析。这是我的密码:
import os
import csv
typeXref = dict()
with open('xref.csv') as csvData:
csvRead = csv.reader(csvData)
headers = next(csvRead)
for index, row in enumerate(csvRead):
typeXref[index] = {key: value for key, value in zip(headers, row)}
print(typeXref)
出于某种原因,我的第一列连续返回头中第一列的字节顺序标记\ufeff
408: {'\ufefftype': 'Residential', 'type_mapping': 'Residential',
' style': 'Antique', 'style_mapping': 'Antique', 'Count': '109'}}
我假设这是由于我打开文件、使用csv
模块读取内容或生成文件的方式造成的
我可以找出如何解码该字段,但更希望确保正确生成文件,或使用
csv
模块属性。您必须知道您正在读取带有BOM的utf-8文件:
with open('xref.csv', encoding='utf-8-sig') as csvData:
....
然后,BOM将被剥离您是否已经尝试过将
和open('xref.csv',encoding='utf-8')作为csvData:
?好主意。我只是尝试了一下,但我仍然检索到了相同的BOM表。不过,我怀疑这是类似的。谢谢!经过搜索终于找到了这个。建议使用quotechar
或quoting=csv的答案。QUOTE_ALL
对我不起作用。