首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从字符串中创建逗号分隔列表,但忽略双引号中的逗号

从字符串中创建逗号分隔列表,但忽略双引号中的逗号
EN

Stack Overflow用户
提问于 2021-06-07 16:54:29
回答 1查看 303关注 0票数 0

我试图从以逗号分隔的字符串中创建一个列表,但是在引号中包含的字符串中有一组值,其中也包括逗号。我想要创建一个忽略引号中逗号的列表。我有几百份这种格式的文本文件。这是(许多)字符串中的一个:

代码语言:javascript
运行
复制
str = ('1ATB,"300,2986,4151,3719,3488,3027,3123,3348,3530", ,2019-11-27 12:45:11.000,000-286428,Paint Powder,1ATB,')

我想得到的结果是:

代码语言:javascript
运行
复制
['1ATB', '"300, 2986, 4151, 3719, 3488, 3027, 3123, 3348, 3530"', ' ', '2019-11-27 12:45:11.000', '000-286428', 'Paint Powder', '1ATB', '']

我第一次尝试:

代码语言:javascript
运行
复制
str=('1ATB,"300,2986,4151,3719,3488,3027,3123,3348,3530", ,2019-11-27 12:45:11.000,000-286428,Paint Powder,1ATB,')
list1 = str.split(",")

产生的结果是:

代码语言:javascript
运行
复制
['1ATB', '"300', '2986', '4151', '3719', '3488', '3027', '3123', '3348', '3530"', ' ', '2019-11-27 12:45:11.000', '000-286428', 'Paint Powder', '1ATB', '']

我很感激你对此的任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-07 16:57:38

也许CSV模块能帮上忙。

代码语言:javascript
运行
复制
>>> s = ('1ATB,"300,2986,4151,3719,3488,3027,3123,3348,3530", ,2019-11-27 12:45:11.000,000-286428,Paint Powder,1ATB,')
>>> print(s)
1ATB,"300,2986,4151,3719,3488,3027,3123,3348,3530", ,2019-11-27 12:45:11.000,000-286428,Paint Powder,1ATB,
>>> from io import StringIO
>>> import csv
>>> f = StringIO(s)
>>> reader = csv.reader(f)
>>> row = next(reader)
>>> row
['1ATB', '300,2986,4151,3719,3488,3027,3123,3348,3530', ' ', '2019-11-27 12:45:11.000', '000-286428', 'Paint Powder', '1ATB', '']
>>> row2 = [f'"{col}"' if ',' in col else col for col in row]
>>> row2
['1ATB', '"300,2986,4151,3719,3488,3027,3123,3348,3530"', ' ', '2019-11-27 12:45:11.000', '000-286428', 'Paint Powder', '1ATB', '']
>>>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67875765

复制
相关文章

相似问题

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