Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python csv模块返回第一列的BOM表_Python_Python 3.x_Csv_Unicode - Fatal编程技术网

Python csv模块返回第一列的BOM表

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

我有一个如下格式的csv文件:

类型,类型映射,样式,样式映射,计数
住宅,住宅,古董,古董,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
对我不起作用。