我是使用Python的csv模块的新手,但由于缺少转义符和奇怪的数据,我一直遇到无法解析的问题。这是两个导致其抓住多行并中断(制表符分隔的值)的示例:


  B 2885192“某些输入
  
  L 30019”


这两个示例都将其破坏并得到“没有转义字符集”错误。这是我用来阅读的主线:

with open (INFO_FILE, "rt", encoding = "latin1") as info:
    info = csv.reader (info, delimiter = '\t')


我找不到可靠的答案,也无法在文档中找出处理此问题的确切方法。我敢肯定,它就像修改csv.writer的选项一样简单。在那些情况下,我应该改变些什么以使其接受为直接字符串,而又不尝试查找结尾引号?

最佳答案

您没有为读者指定quoting=csv.QUOTE_NONE。尝试

with open (INFO_FILE, "rt", encoding = "latin1") as info:
    info = csv.reader (info, delimiter = '\t', quoting=csv.QUOTE_NONE)
    for line in info:
        print(line)


输出:

['B', '2885192', '"Some input']
[]
['L', '30019', '"']

关于python - 如何处理引号不均的.tsv?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26920849/

10-15 20:50