我正在尝试执行此代码,并且收到以下追溯错误。谁能帮我解决问题。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "loaders/buildingos_mysql.py", line 29, in <module>
class TableLoader(object):
File "loaders/buildingos_mysql.py", line 32, in TableLoader
dialects.mysql.base.DOUBLE: lambda t: sqltypes.FLOAT(),
AttributeError: 'module' object has no attribute 'mysql'
以下是我尝试运行的代码部分:
from datetime import datetime
from StringIO import StringIO
import pandas as pd
from sqlalchemy import create_engine, Column, dialects, MetaData, Table
from sqlalchemy.sql import sqltypes
class Mysql(object):
'''
class to load MySQL into s3 and redshift_table
'''
TYPE_MAP = {
dialects.mysql.base.DOUBLE: lambda t: sqltypes.FLOAT(),
dialects.mysql.base.INTEGER: lambda t: sqltypes.NUMERIC(),
dialects.mysql.base.TINYINT: lambda t: sqltypes.NUMERIC(),
dialects.mysql.base.SMALLINT: lambda t: sqltypes.NUMERIC(),
dialects.mysql.base.TIMESTAMP: lambda t: dialects.postgresql.base.TIMESTAMP(),
dialects.mysql.base.DATETIME: lambda t: dialects.postgresql.base.TIMESTAMP(),
dialects.mysql.base.LONGTEXT: lambda t: sqltypes.VARCHAR(length=65535),
dialects.mysql.base.VARCHAR: lambda t: sqltypes.VARCHAR(length=max(16, t.length)), # Hack around err_code 1204.
dialects.mysql.base.ENUM: lambda t: sqltypes.VARCHAR(),
dialects.mysql.base.TEXT: lambda t: sqltypes.VARCHAR(length=65535),
dialects.mysql.base.TIME: lambda t: sqltypes.VARCHAR(40),
dialects.mysql.base.FLOAT: lambda t: sqltypes.FLOAT(),
dialects.mysql.base.DECIMAL: lambda t: sqltypes.DECIMAL(),
dialects.mysql.base.BIGINT: lambda t: sqltypes.VARCHAR(40), # Hack around pandas scientific notation for now.
dialects.mysql.base.CHAR: lambda t: sqltypes.VARCHAR(),
sqltypes.DATE: lambda t: sqltypes.DATE(),
}