В моей базе данных есть столбец, в котором хранится строка в следующем формате:
"['Action', 'Adventure', 'Comedy']"
Как извлечь жанры mov ie, чтобы я мог использовать их отдельно, после извлечения у меня должно быть следующее:
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
Попробуйте:
inputString = "['Action', 'Adventure', 'Comedy']" # Converting string to list res = inputString.strip('][').split(', ') g1= res[0] g2= res[1] g3= res[2]
Существует несколько способов сделать это.
Использование манипуляции со строками, как описано выше.
Использование ast.literal_eval().
ast.literal_eval()
Использование json.loads().
json.loads()
Вы можете посмотреть все примеры здесь: https://www.geeksforgeeks.org/python-convert-a-string-representation-of-list-into-list/
Если вам нравится регулярное выражение:
import re g = "['Action', 'Adventure', 'Comedy']" g1,g2,g3 = re.findall(r"'(\w+)'",g) print(g1,g2,g3)
Попробуйте этот код, используя регулярное выражение:
import re g = "['Action', 'Adventure', 'Comedy']" [g1, g2, g3] = " ".join(re.findall("[a-zA-Z]+", g)).split(" ")
С небольшим искажением вы можете использовать json:
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