首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >csv文件解析中的歧义

csv文件解析中的歧义
EN

Stack Overflow用户
提问于 2015-03-05 04:34:29
回答 3查看 193关注 0票数 0

我试图用以下内容解析csv文件:

代码语言:javascript
运行
复制
# country,title1,title2,type
GB,Fast Friends,Burn Notice, S:4, E:2,episode,
SE,The Spiderwick Chronicles,"SPIDERWICK CHRONICLES, THE",movie,

预期产出如下:

代码语言:javascript
运行
复制
['SE', 'The Spiderwick Chronicles', '"SPIDERWICK CHRONICLES, THE"', 'movie']
['GB', 'Fast Friends', 'Burn Notice, S:4, E:2', 'episode']

问题是,“title”字段中的逗号没有转义。我尝试使用csvreader以及字符串和regex解析,但无法获得明确的匹配。

是否有可能在半个字段上用未转义的逗号精确地解析该文件?或者,是否需要创建一个新的csv?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-05 04:47:17

如果您可以假设所有的逗号都会出现在title2中,那么您就可以玩这个把戏了。否则,您将有不明确的数据。

代码语言:javascript
运行
复制
strings = ['SE,The Spiderwick Chronicles,"SPIDERWICK CHRONICLES, THE",movie,'
          ,'GB,Fast Friends,Burn Notice, S:4, E:2,episode,'
          ]
for string in strings:
    xs = string.split(',')
    country = xs[0]
    title1  = xs[1]
    title2  = ' '.join(xs[2:-2])
    mtype   = xs[-2]
    print [country, title1, title2, mtype]

输出:

代码语言:javascript
运行
复制
['SE', 'The Spiderwick Chronicles', '"SPIDERWICK CHRONICLES  THE"', 'movie']
['GB', 'Fast Friends', 'Burn Notice  S:4  E:2', 'episode']
票数 2
EN

Stack Overflow用户

发布于 2015-03-05 05:29:32

您可以使用RegEx (import re) - 见文件

匹配(\".*\",)|(.*,)

这样,您可以查找引用的字符串,也可以查找任何字符串。

票数 0
EN

Stack Overflow用户

发布于 2015-03-05 06:26:19

如果字段中有逗号,我将将excel保存为文本文件,字段由选项卡分隔。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28870071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档