Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以使用python字典在DB中创建表?_Python_Sqlalchemy - Fatal编程技术网

有没有一种方法可以使用python字典在DB中创建表?

有没有一种方法可以使用python字典在DB中创建表?,python,sqlalchemy,Python,Sqlalchemy,我有一本很大的条目字典,大约有400列。我有一个脚本来检测和创建每个项的类型,所以我有{'age'=INT,“Name”=String,等等…),但我不知道如何使用它在SQLAlchemy中创建表或直接创建查询 我使用的是postgres,但我熟悉mysql和sqlite,因此我可以将任何适用于它们的东西应用到我的用例中。这是怎么回事: from sqlalchemy import create_engine, Table, Column, MetaData metadata = MetaDat

我有一本很大的条目字典,大约有400列。我有一个脚本来检测和创建每个项的类型,所以我有{'age'=INT,“Name”=String,等等…),但我不知道如何使用它在SQLAlchemy中创建表或直接创建查询

我使用的是postgres,但我熟悉mysql和sqlite,因此我可以将任何适用于它们的东西应用到我的用例中。

这是怎么回事:

from sqlalchemy import create_engine, Table, Column, MetaData
metadata = MetaData()
fields = (Column(colname, coltype) for colname, coltype in your_dict.items())
t = Table(name, metadata, *fields)
engine = create_engine(database)
metadata.create_all(engine)
您需要使用
sqlalchemy.sql.sqltypes
中的对象,而不是
目录中的字符串作为值:

from sqlalchemy.sql.sqltypes import String, Integer

查看完整列表。

这是否回答了您的问题?谢谢@Błotosmętek我在搜索答案时看到了这个问题,但我没有看到如何创建表本身的联系。他们似乎提前知道列数和键入。啊,我知道问题出在哪里了。为什么投反对票?我试过了,但我是ge纠正此错误:sqlalchemy.exc.ArgumentError:'SchemaItem'对象,如预期的'Column'或'Constraint',得到'String'。下面是一个示例,说明我的your_dict字典看起来像{'Code':'String','Type':'String','Name':'String','Exchange':'String'}谢谢你这么多的工作。太酷了,救了我(希望还有其他人)在创建大量列时需要花费大量时间。