当前位置: 代码迷 >> python >> 如何清理和拆分以下字符串?
  详细解决方案

如何清理和拆分以下字符串?

热度:60   发布时间:2023-07-16 10:48:36.0

我的数据库中有一个列,它以以下格式存储字符串:

"['Action', 'Adventure', 'Comedy']"

如何提取电影类型以便我可以单独使用它们,提取后我应该有以下内容:

g1 = 'Action'  
g2 = 'Adventure'  
g3 = 'Comedy'

你可以试试这个。 您可以将它们分开,并从单词中去除[] '并使用元组解包。

a="['Action', 'Adventure', 'Comedy']"

g1,g2,g3=[i.strip(" []'") for i in a.split(',')]

print(g1,g2,g3)
# Action Adventure Comedy

如果你喜欢正则表达式:

import re
g = "['Action', 'Adventure', 'Comedy']"
g1,g2,g3 = re.findall(r"'(\w+)'",g)
print(g1,g2,g3)

尝试这个 :

inputString = "['Action', 'Adventure', 'Comedy']"

# Converting string to list 
res = inputString.strip('][').split(', ') 

g1= res[0]
g2= res[1]
g3= res[2]

有很多方法可以做到这一点。

  1. 如上所述使用字符串操作。

  2. 使用ast.literal_eval()

  3. 使用json.loads()

您可以在此处查看所有示例: :

通过一些修改,您可以使用json

import json

src = "['Action', 'Adventure', 'Comedy']"
src = src.replace("'",'"')

g = json.loads(src)
g1,g2,g3 = g

print(g1,g2,g3)

输出:

Action Adventure Comedy

使用正则表达式试试这个代码:

import re
g = "['Action', 'Adventure', 'Comedy']"
[g1, g2, g3] = " ".join(re.findall("[a-zA-Z]+", g)).split(" ")
  相关解决方案