如何使用 sqlite 将列表设置到数据库中(或实现类似的东西)
How to set a list into DB with sqlite (or achive something similar)
我有一部电影可以有多种类型。我想将该列表放入数据库中,但似乎数据库无法在单元格中保存列表。
是否有任何其他方法可以实现此目的,以便我可以将任意数量的流派关联到特定电影?
class Film:
def __init__(self, title, genres):
self.title = title
self.genres = genres
def accept_genre(self, genre):
self.genres.append(genre)
Movie1 = Film("Taxi Driver", ["Drama"])
print(Movie1.genres) #prints ["Drama"]
Movie1.accept_genre("Crime")
print(Movie1.genres) #prints ["Drama", "Crime"]
...
#im thinking something like this but it doesnt work with lists:
def addToDB(title):
with conn:
c.execute("""UPDATE film SET genres = :genre WHERE title = :title""",
{'title': title, 'genres': list,}) addToDB("Taxi Driver")
您是否考虑过存储为分号分隔的字符串?
genres_list = ['Comedy','Horror']
# Pass this dictionary into cur.execute:
{'title': title, 'genres': ';'.join(genres_list),}
要将分号分隔的字符串转换为列表,请使用 .split 方法:
'Comedy;Horror'.split(';')
# the result is ['Comedy','Horror']
我有一部电影可以有多种类型。我想将该列表放入数据库中,但似乎数据库无法在单元格中保存列表。
是否有任何其他方法可以实现此目的,以便我可以将任意数量的流派关联到特定电影?
class Film:
def __init__(self, title, genres):
self.title = title
self.genres = genres
def accept_genre(self, genre):
self.genres.append(genre)
Movie1 = Film("Taxi Driver", ["Drama"])
print(Movie1.genres) #prints ["Drama"]
Movie1.accept_genre("Crime")
print(Movie1.genres) #prints ["Drama", "Crime"]
...
#im thinking something like this but it doesnt work with lists:
def addToDB(title):
with conn:
c.execute("""UPDATE film SET genres = :genre WHERE title = :title""",
{'title': title, 'genres': list,}) addToDB("Taxi Driver")
您是否考虑过存储为分号分隔的字符串?
genres_list = ['Comedy','Horror']
# Pass this dictionary into cur.execute:
{'title': title, 'genres': ';'.join(genres_list),}
要将分号分隔的字符串转换为列表,请使用 .split 方法:
'Comedy;Horror'.split(';')
# the result is ['Comedy','Horror']