私は Python を初めて使用します。これは、醜い小さな put-this-tabular-data-into-a-db 変換を行うために使用しています。プログラムはデータを見て、MySQL にテーブルを作成し、データをテーブルに読み込みます。このセクションでは、ヘッダー行のテキストをチェックして、データ型に関する決定を下します。if/elif ではなく、単一の正規表現でこれを行うことができるというアイデアがありました。私の解決策は、少なくともこのケースでは機能します。複数の一致について心配する必要はありません。私が求めているのは、効率の点でこのアプローチに実際のメリットはありますか?
def _typeMe(self, header_txt):
# data typing
colspecs = {
'id':'SMALLINT(10)',
'date':'DATE',
'comments':'TEXT(4000)',
'flag':'BIT(1)',
'def':'VARCHAR(255)'
}
# regex to match on header text e.g. 'Provisioner ID'
r = re.search(re.compile('(ID$)|(Date)|(Comments$)|(FLAG$)', re.IGNORECASE), header_txt)
checktype = lambda m: max(m.groups()).lower() if m else 'def'
return colspecs[checktype(r)]