我正在从Python词典构建一些Postgres表,其中{'key':'value'}对对应于列'key'和字段'value'.这些是从.dbf文件生成的 - 我现在将.dbf文件的内容传递给一个脚本,该脚本返回一个dicts列表,如:
{'Warngentyp': '', 'Lon': '-81.67170', 'Zwatch_war': '0', 'State':...
目前我将这些放入没有类型声明的sqlite数据库,然后将其转储到.sql文件,手动编辑架构,并导入Postgres.
我希望能够推断出正确的类型声明,基本上遍历一个字符串列表,如['0','3','5']或['ga','ca','tn']或[ '-81.009','135.444',' - 80.000']并生成类似'int','varchar(2)','float'的内容.(我会对Python,Postgres或SQLite工具同样满意.)
有没有这样做的包,或者直接实现它的方法?
不要使用eval.如果有人插入错误的代码,它可能会阻塞您的数据库或服务器.
而是使用这些
def isFloat(s): try: float(s) return True except (ValueError, TypeError), e: return False str.isdigit()
其他一切都可以是varchar