【发布时间】:2021-07-06 09:07:26
【问题描述】:
据我所知,一个 sqlite3 表中只有五种数据类型可以设置为列。它们是:
-
null表示没有数据。 -
integer表示整数。 -
real表示浮点数。 -
text表示任何字符串。 -
blob一个二进制数据字段,您可以在其中存储文件、文档、图像。
但目前,我的代码中有一个名为 self. inventory 的列表,当用户执行特定操作时,它会偶尔将项目添加到其中。这不是问题。我的问题是我应该为要存储在表中的列表分配什么数据类型?或者有没有其他方法可以用来将表的值存储到数据库中。目前,这是我的连接、游标和表执行:
connection = sqlite3.connect('db_of_game.db')
cursor = connection.cursor()
cursor.execute(
'CREATE TABLE user_data(user_name text primary key, money integer, inventory <What data type to use here?>, deposited integer, allowed_deposit integer)'
)
connection.commit()
connection.close()
【问题讨论】:
-
您可以将列表项连接成逗号分隔的字符串 (
"item1,item2,item3") 并使用text类型,然后在从数据库中读取时使用.split(",")获取列表。跨度> -
我是否创建一个包含逗号分隔字符串的变量并将其添加到表中?这是最好的方法吗?如何在需要时将其重新添加到列表中?
-
是的,创建一个变量是个好主意。这可能是最好的方法,当然也是最简单的。要将其带回列表,请使用
list.split(",")。这会将逗号分隔的字符串转换为 python 列表。 -
永远不要在表格中存储逗号分隔的字符串。阅读:stackoverflow.com/questions/3653462/…
-
那我该怎么办? @forpas
标签: python-3.x list sqlite