【问题标题】:When splitting commas, how to ignore commas in quotes?拆分逗号时,如何忽略引号中的逗号?
【发布时间】:2020-07-01 23:38:37
【问题描述】:

我正在尝试创建应用的 .txt 存储。该应用程序以“月时,日期”的形式记录日期 数据本身就是单词,怎么拼写,“时间”(如上图)

如何在不拆分引号中的时间逗号的情况下拆分数据?

这是代码的基本大纲

>>file.read(filepath, r, encoding='utf-8')
>>file.split(',')```

数据样本:

word,word,"1:03 on March 20,2020"

有人有什么想法吗??? 谢谢!!!

【问题讨论】:

  • 您能否发布一个您尝试拆分的数据示例?
  • @Rashid'Lee'Ibrahim 我将编辑以使数据更清晰
  • 最好使用像 JSON 这样的标准格式,而不是像这样进行临时解析。它可以解决所有这些问题。
  • 这能回答你的问题吗? Python Parse CSV Correctly
  • @Barmar 我弄错了,我会编辑它... ????

标签: python python-3.x


【解决方案1】:

您可以将正则表达式与re.findall 一起使用:

pattern = '(?:".*?"|[^,])+'

第一部分".*?" 确保括号内的逗号被跳过。由于整个组是重复的 (+),它会消耗到下一个逗号。例如:

>>> re.findall(pattern, 'foo, "1, 2"abc, bar')
['foo', ' "1, 2"abc', ' bar']

【讨论】:

    【解决方案2】:

    如果我理解正确,您希望拆分字符串而不拆分日期。

    如果您知道您的数据应该始终被拆分三次(也就是单词、单词和日期),那么在 split 中使用 maxsplit 参数

    file.split(',', maxsplit = 2)
    

    如果您不知道可能需要多少次拆分,我建议您制作自己的拆分器函数来检查后面的字符和前面的字符是否为数字

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 1970-01-01
      • 2011-12-25
      • 2018-04-14
      • 2020-08-03
      相关资源
      最近更新 更多