如何读取由'\ x01'分隔的CSV文件并在python中创建字典

时间:2015-07-24 02:23:49

标签: python python-2.7 csv

我需要读取\x01(^ A)分隔的CSV文件,并为我的查找创建一个字典,以便进一步处理我的业务逻辑。 我的输入文件包含很多列,我需要将14列作为键,并将其作为值。

之前文件是逗号分隔的,我能够读取文件并创建字典。知道文件是\x01分隔的,我的脚本失败了

这就是我之前创建词典的方式

lake_dataset = csv.DictReader(open(local_registry_file_path+os.path.basename(registryPath),'rb'))
master_dir = {}
for row in lake_dataset:
    key = row.pop('TBL_DATASETLOCATION')
    key = key.lower().strip()
    master_dir[key] = row

2 个答案:

答案 0 :(得分:0)

您可以注册使用该字符作为分隔符的自定义方言as seen in this answer

import csv

class custom_sep(csv.excel):
    delimiter = chr(0x01)
csv.register_dialect("custom_sep", custom_sep)

data = """col1\x01col2\x01col3
foo\x01bar\x01baz
moo\x01mee\x01mah"""

data = csv.DictReader((x.strip() for x in data.split('\n')), dialect="custom_sep")
for row in data:
    print row

答案 1 :(得分:0)

您可以尝试在DictReader中设置delimiter='\x01'

lake_dataset = csv.DictReader(open(local_registry_file_path+os.path.basename(registryPath),'rb'), delimiter='\x01')