Python读取csv以丢失引号

时间:2016-12-08 13:41:19

标签: python csv

我有一个制表符分隔的csv文件,如下所示:

"land"."monkey" "land"."dog"
"see"."fish"    "see"."shell"

我用以下内容阅读并构建了一个词典:

import argparse
currentSources = open('currentSources.csv', 'r')
find_replace_dict = {}

with currentSources as f:
    reader = csv.reader(f,delimiter='\t')
    find_replace_dict = dict((rows[0],rows[1]) for rows in reader)

print find_replace_dict

我希望find_replace_dict的输出像

{'"land"."monkey"': '"land"."dog"', '"see"."fish"': '"see"."shell"'}

但请改为:

{'land."monkey"': 'land."dog"', 'see."fish"': 'see."shell"'}

这里双重引用的土地和看不见了。 我已经尝试告诉读者用

引用所有内容
reader = csv.reader(f,delimiter='\t',quoting=csv.QUOTE_NONNUMERIC)

没有任何区别。

如何保留所有双引号?

2 个答案:

答案 0 :(得分:1)

打开文件时,明确指示Python该quotechar不适用,并将其设置为None

以下内容可帮助您获得所需的输出:

with currentSources as f:
    reader = csv.reader(f, delimiter='\t', quotechar=None)

答案 1 :(得分:0)

reader = csv.reader(currentSources, delimiter='\t', quotechar=None)

删除with语句来整理它。