如何清理字符串以加载到Python拆分中的数组?



我有一个动态创建的字符串集,用;分隔,现在我想将它们转换为类似

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参数,该参数容忍(并去除(分隔符后的空格。

最新更新