1
我正在使用sqlite3在Python模塊中訪問數據庫。自定義類型的python sqlite3適配器
我經常在我的python對象中使用enums。目前我必須將我的枚舉轉換爲字符串,然後再將它們插入到sqlite數據庫中。我下面的嘗試註冊一個通用適配器,使此轉換隱含失敗。
def adapt_enum(enum_instance):
return enum_instance.name
sqlite3.register_adapter(enum.Enum,adapt_enum)
上述實現會導致以下錯誤。
sqlite3.InterfaceError: Error binding parameter 5 - probably unsupported type.
註冊,如下所示每個枚舉的適配器,但是工作
class MyEnum(Enum):
a = 1
b = 2
def adapt_my_enum(my_enum_instance):
return my_enum_instance.name
sqlite3.register_adapter(MyEnum,adapt_my_enum)
細的適配器MyEnum按預期工作。但通過這種方式,我必須爲所有枚舉分別註冊一個適配器。有沒有辦法消除這種冗餘?
P.S.我使用Python 2.7