我有一个动态创建的字符串集,用;
分隔,现在我想将它们转换为类似
st = "app; map; 'better tap'; nima;"
st_n = st.split(';')
print(st_n)
这工作正常,直到只有一个像app
这样的词,但是当有一个'better tap'
(我得到很多(时,它会将它们包裹在一个额外的""
中。我该如何解决这个问题?
["应用程序", "地图", "更好的水龙头", "尼玛"]
您可以在拆分之前从更好的点击中删除 ':
st = "app; map; 'better tap'; nima;"
st_n = st.replace(''', '').split(';')
print(st_n)
给:
["应用程序", "地图", "最好点击", ">尼玛", "]
一种干净的方法是使用csv
模块:
st = "app; map; 'better tap'; nima;"
import csv
tokens = next(csv.reader([st],delimiter=";",quotechar="'",skipinitialspace=True))
结果:
['app', 'map', 'better tap', 'nima', '']
(您可以在最后过滤空字段,或者如果存在问题,请使用st.strip(";")
预处理字符串(。
优点是,如果用引号括起来,它对分隔符字符是健壮的。更改st
如下所示:
st = "app; map; 'better ; tap'; nima"
你会得到
['app', 'map', 'better ; tap', 'nima']
这个字符串可以通过模块正确解析csv
这要归功于模糊的skipinitialspace
参数,该参数容忍(并去除(分隔符后的空格。