我需要读取\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
答案 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')