将字符串转换为python中的字符串列表



我有一个从csv文件中提取的字符串,格式如下:

str = "[point, contextual, point]"

我要做的是把它转换成一个格式为

的列表
str = ["point", "contextual", "point"]

我该怎么做?我尝试了json.loads(str),但我得到了错误:

json.decoder.JSONDecodeError: expected value: line 1 column 2 (char 1)

你可以使用:

my_str = "[point, contextual, point]"
my_str[1:-1].split(', ') # remove first and last characters ([]) and split on ", "

NB。不要使用str作为变量名,这会覆盖str内装式

您可以使用这个表达式:str[1:-1].split(", ")

顺便说一下,不建议给变量指定python类型的名称。

我建议你使用yaml:

import yaml
s = "[point, contextual, point]"
s = yaml.load(s, Loader=yaml.FullLoader)
print(s)

['point', 'contextual', 'point']

注意:

yaml是一个第三方模块,安装它做(在命令行):

pip install pyyaml 

上面代码片段的yaml版本是5.4.1

因为这不是一个有效的JSON字符串,json.loads不起作用。您需要手动执行,并且您不能使用json模块用于您拥有的字符串。

st = "[point, contextual, point]"
lst = st[1:-1].split(', ')

另外,不要使用str作为变量:那是内置的

试试下面的代码:

string = "[point, contextual, point]"
print(string[1:-1].split(', '))

输出:

['point', 'contextual', 'point']

告诉我你是否可以…

你可以试试:

>>> st = "[point, contextual, point]"
>>> st[1:-1]
[point, contextual, point]
>>> st[1:-1].split(',')
['point', ' contextual', ' point'] # <- you have space
>>> list(map(lambda x: x.strip(), st[1:-1].split(',')))
['point', 'contextual', 'point']

为什么不是split(', ')?

>>> st = "[point,   contextual,     point]"
>>> st[1:-1].split(', ') 
['point', '  contextual', '    point']
>>> list(map(lambda x: x.strip(), st[1:-1].split(',')))
['point', 'contextual', 'point']

相关内容

  • 没有找到相关文章

最新更新