当字段包含逗号时,拆分字符串为逗号。

2024-06-26 14:41:18 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑以下字符串:

'538.48,0.29,"533.59 - 540.00","AZO",102482,"+0.05%","N/A",0.00,535.09,"AutoZone, Inc. Co",538.77,"N/A"'

我需要将其拆分为一个列表,以便如下所示:

^{pr2}$

问题是我不能使用list.split(','),因为第10个字段中有一个逗号。问题是,当任意字段可能有逗号时,如何最好地将原始字符串拆分成一个列表?在


Tags: 字符串列表listincsplit逗号copr2
1条回答
网友
1楼 · 发布于 2024-06-26 14:41:18

使用^{} module而不是尝试自己拆分它,而是直接处理带引号的值,包括包含分隔符的引号:

>>> import csv
>>> from pprint import pprint
>>> data = '538.48,0.29,"533.59 - 540.00","AZO",102482,"+0.05%","N/A",0.00,535.09,"AutoZone, Inc. Co",538.77,"N/A"'
>>> reader = csv.reader(data.splitlines())
>>> pprint(next(reader))
['538.48',
 '0.29',
 '533.59 - 540.00',
 'AZO',
 '102482',
 '+0.05%',
 'N/A',
 '0.00',
 '535.09',
 'AutoZone, Inc. Co',
 '538.77',
 'N/A']

注意'AutoZone, Inc. Co'列的值。在

如果要从文件中读取此数据,请将file对象直接传递给csv.reader()对象,而不是将字符串序列交给它。在

您甚至可以通过设置^{}将数值(任何未引用的内容)解释为浮点值:

^{pr2}$

相关问题 更多 >