【发布时间】:2021-08-03 06:46:30
【问题描述】:
我正在使用 pandas/sql alchemy 将表写入 sql 数据库。
下面是一些示例代码:
df.to_sql('table', connection, schema=None, dtype={
'id': sa.types.VARCHAR(length=100),
'value1': sa.types.Float(),
'value2': sa.types.Float()})
我有一个 csv 文件,其中定义了每列的数据类型,我希望能够使用 pandas 读取 csv 文件,然后将表转换为字典,该字典将传递给 to_sql() 方法。
如果我直接执行此操作,则数据类型(例如 sa.types.VARCHAR(length=100))将显示为字符串。如何转换此字符串,以便将其作为适当的数据类型传递。
为了澄清我是否从 csv 表中读取数据,dtype 字典将如下所示:
{'id': 'sa.types.VARCHAR(length=100)'}
而不是当前的:
{'id': sa.types.VARCHAR(length=100)}
【问题讨论】:
-
什么是合适的数据类型?你为什么不直接使用它而不是
VARCHAR? -
“数据类型将显示为字符串”是什么意思?
-
我添加了一个说明
-
我认为您所看到的正是
sa.types类代表自身的方式。这不是一个真正的字符串。 -
它是一个类对象,它们没有字符串和数字等文字表示。他们选择使用类似字符串的外观而不是
<sa.types ...>表示法。
标签: python pandas string sqlalchemy