我需要将一个Python set存储在数据库中以供以后访问。最好的方法是什么?我的初始计划是在我的模型上使用textfield,只需将set存储为逗号或管道分隔的字符串,然后当我需要将其取出以在我的应用程序中使用时,可以通过调用split函数来初始化一个set。显然,如果有一种简单的方法可以序列化set以将其存储在数据库中,这样我以后需要使用时就可以将其作为set取回,那就最好不过了。
我需要将一个Python set存储在数据库中以供以后访问。最好的方法是什么?我的初始计划是在我的模型上使用textfield,只需将set存储为逗号或管道分隔的字符串,然后当我需要将其取出以在我的应用程序中使用时,可以通过调用split函数来初始化一个set。显然,如果有一种简单的方法可以序列化set以将其存储在数据库中,这样我以后需要使用时就可以将其作为set取回,那就最好不过了。
pickle.dumps()
和 pickle.loads()
操作的是字符串(这就是 "s" 的含义),因此它们也可以存储在 varchar
或其他文本列中。 - dcrostaCommaSeparatedIntegerField
非常适合将MultipleChoiceField
的值保存到数据库中。 - SkiRedis本地存储集合(以及其他数据结构(列表、字典、队列)),并提供集合操作 - 而且速度非常快。我发现它是Python开发的瑞士军刀。
我知道它不是一个关系型数据库,但它确实非常简洁地解决了这个问题。
关于 CommaSeparatedIntegerField 呢?
如果你需要其他类型(例如字符串),你可以创建自己的字段,它将像 CommaSeparatedIntegerField
一样工作,但会使用字符串(而不是逗号)。
或者,如果你需要其他类型,可能更好的方法是:创建一个字典,将整数映射到你的值。