sqlite 的官方文档建议将列表存储为二进制对象。谷歌给了我各种建议。一种是使用数组模块(array.array('B',my_list2),但这不适用于非平凡的列表:
my_list2 = [(23,"Bob"), (22,"Alice")]
array.array('B',my_list2)
TypeError: an integer is required
另一个建议涉及使用泡菜,但有人插话说它不安全。最后一个建议是为每个列表变量创建一个新表,其中有几个。不过,我对制作复杂的架构犹豫不决。
我应该怎么办?我应该如何将 my_list2 与其他列表一起存储在数据库中?
编辑
找到了一个优雅而整洁的解决方案,适用于简单和复杂的案例,代码最少:
import json
my_list2 = [(23,"Bob Baker"), (22,"Alice Adams")]
my_list2_str = json.dumps(my_list2)
print type(my_list2_str)
<type 'str'>
list2 = json.loads(my_list2_str)
print list2, type(list2)
[(23, u"Bob Baker"), (22, u"Alice Adams")] <type 'list'>