问题描述
我的数据库中有一个列,它以以下格式存储字符串:
"['Action', 'Adventure', 'Comedy']"
如何提取电影类型以便我可以单独使用它们,提取后我应该有以下内容:
g1 = 'Action'
g2 = 'Adventure'
g3 = 'Comedy'
1楼
你可以试试这个。
您可以将它们分开,
并从单词中去除[] '
并使用元组解包。
a="['Action', 'Adventure', 'Comedy']"
g1,g2,g3=[i.strip(" []'") for i in a.split(',')]
print(g1,g2,g3)
# Action Adventure Comedy
2楼
如果你喜欢正则表达式:
import re
g = "['Action', 'Adventure', 'Comedy']"
g1,g2,g3 = re.findall(r"'(\w+)'",g)
print(g1,g2,g3)
3楼
尝试这个 :
inputString = "['Action', 'Adventure', 'Comedy']"
# Converting string to list
res = inputString.strip('][').split(', ')
g1= res[0]
g2= res[1]
g3= res[2]
有很多方法可以做到这一点。
如上所述使用字符串操作。
使用
ast.literal_eval()
。使用
json.loads()
。
您可以在此处查看所有示例: :
4楼
通过一些修改,您可以使用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
5楼
使用正则表达式试试这个代码:
import re
g = "['Action', 'Adventure', 'Comedy']"
[g1, g2, g3] = " ".join(re.findall("[a-zA-Z]+", g)).split(" ")