当前位置:  开发笔记 > 编程语言 > 正文

在Python中从字符串中推断出适当的数据库类型声明

如何解决《在Python中从字符串中推断出适当的数据库类型声明》经验,为你挑选了1个好方法。

我正在从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工具同样满意.)

有没有这样做的包,或者直接实现它的方法?



1> Unknown..:

不要使用eval.如果有人插入错误的代码,它可能会阻塞您的数据库或服务器.

而是使用这些

def isFloat(s):
try:
    float(s)
    return True
except (ValueError, TypeError), e:
    return False


str.isdigit()

其他一切都可以是varchar


"如果有人插入了错误的代码,它可能会阻塞你的数据库或服务器"什么?怎么会发生?谁是可以插入错误代码的"某人"?什么"坏代码"将使服务器软化?'import sys; sys.crash_server(True)'作为列值?
推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有