Python 用逗号分隔字符串和其他值。。。。!

Python 用逗号分隔字符串和其他值。。。。!,python,split,Python,Split,我正在处理一个项目,在这个项目中,将有一个变量包含任何数据类型,这些数据类型用逗号分隔 我需要分离所有这些东西,还需要定义它是哪种类型 例如: data=“你好,你好”,123,10.04 我使用split()函数来分隔,但它甚至在字符串“Hello,Hey”中分隔逗号 我不需要这样,我只需要,用逗号分隔值,而不是用字符串中的逗号 我杀死了我的大脑,但这对我来说仍然是个问题。因为我是初学者 提前感谢我很难理解您的问题-似乎您有一个字符串,其中包含数据,用逗号分隔: data='"Hello, H

我正在处理一个项目,在这个项目中,将有一个变量包含任何数据类型,这些数据类型用逗号分隔

我需要分离所有这些东西,还需要定义它是哪种类型

例如: data=“你好,你好”,123,10.04

我使用split()函数来分隔,但它甚至在字符串“Hello,Hey”中分隔逗号

我不需要这样,我只需要,用逗号分隔值,而不是用字符串中的逗号

我杀死了我的大脑,但这对我来说仍然是个问题。因为我是初学者


提前感谢

我很难理解您的问题-似乎您有一个字符串,其中包含数据,用逗号分隔:

data='"Hello, Hey",123,10.04'
您可以使用根据引号对其进行拆分

>>> import shlex
>>> s = shlex.shlex(data)
>>> s.whitespace = ','
>>> s.wordchars += '.'
>>> print(list(s))
['"Hello, Hey"', '123', '10.04']

您可以像这样使用
re
模块:

[m.group(1) or m.group(2) for m in re.finditer(r'"([^"]*)",?|([^,]*),?', '"Hello, Hey",123,10.04')]

您可以使用
re.split
对逗号前的双引号或逗号后的数字组合进行拆分

import re

data='"Hello, Hey",123,10.04'
re.split(r'(?<="),|,(?=\d)', data)
['"Hello, Hey"', '123', '10.04']
重新导入
数据='“你好”,123,10.04'

re.split(r’(?您可以将
re.findall
与regex模式一起使用
“[^”]+”|[^,]+

import re
print(re.findall(r'"[^"]+"|[^,]+', '"Hello, Hey",123,10.04'))
这将产生:

['"Hello, Hey"', '123', '10.04']

你在使用CSV文件吗?考虑把你的数据存储在一个列表中,而不是一个字符串。不清楚你在问什么。你的代码是否需要接受数据作为CSV字符串?如果不是,那么改变你的数据模型。如果你必须处理这样的CSV数据,研究正则表达式。好一个!没有想到使用SLLEX。