我想扩展下面的代码,以便可以使用双引号。例如,字符串'303,"Candy, Original",45,19'
应该返回[303,"Candy, Original",45,19]
。请帮忙。谢谢。
def parse(s):
#If string can be parsed as integer, return integer
try:
num = int(s)
return num
except:
pass
#Else return string
return s
data=[parse(x) for x in myString.split(",")]
最佳答案
csv
模块可以很好地处理引用的逗号。您可能想尝试围绕它构建一个解析器。
import csv
from io import StringIO
def to_numeric(x):
try:
return int(x)
except ValueError:
pass
try:
return float(x)
except ValueError:
pass
return x
def parse_line(s):
f = StringIO(s)
f.seek(0)
reader = csv.reader(f)
out = next(reader)
return [to_numeric(x) for x in out]
s = '303,"Candy, Original",45,19'
parse_line(s)
# returns:
[303, 'Candy, Original', 45, 19]
关于python - 用双引号引起来时忽略逗号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56370314/