【发布时间】:2016-11-07 02:59:04
【问题描述】:
假设我正在使用 SQLAlchemy 将通用 .csv 文件上传到 mssql 服务器。
如何推断每列的类型?似乎必须明确声明一列,例如 {'myvar' : Column(Integer)}。 SQLAlchemy 或其他一些库有没有办法自己推断每列的数据类型?
VB 有函数“TransferText”可以做到这一点,但我想在 python 中做到这一点。
【问题讨论】:
-
如果你有课程
YourClass那么你可以查看YourClass.your_attribute.type.python_type -
不幸的是,这在我的情况下不起作用。通用 .csv 文件不包含类型或类信息 - 仅包含逗号分隔的字符串。我可以读取标题以获取列的数量和名称,并创建一个默认情况下每个参数都具有 None 或 String 类型的类 - 但我无法推断字符串是否可能代表另一种数据类型。
-
你将它上传到什么到?也就是能不能从目的表中得到类型信息?
-
我可能需要创建表;否则可以只使用现有的表参数。
-
您必须自己编写推理算法,例如读取每一行并确定每一列是否所有单元格都只包含数字。没有万能的推理算法,因为 CSV 不是通用的。
标签: sql-server python-2.7 sqlalchemy