2017-04-11 103 views
1

我不断收到关于primary_key=True的以下错误。请有人指出我出错的地方。我试图遵循:SQL炼金术:表primary_key - 意外的关键字参数错误

http://docs.sqlalchemy.org/en/latest/core/metadata.html#metadata-describing

from sqlalchemy import * 

mydata123 = table("dailymarketdata", metadata, 
        column('data_id', mysql.BIGINT, primary_key=True), 
        column('dt', Date), 
        column('security_id', mysql.VARCHAR), 
        column('open', float), 
        column('high', float), 
        column('low', float), 
        column('close', float), 
        column('ma200', float), 
        column('rtrend', mysql.TINYINT)) 

TypeError         Traceback (most recent call last) 
<ipython-input-350-bd385371a391> in <module>() 
    2 
    3 mydata123 = table("dailymarketdata", metadata, 
----> 4     column('data_id', mysql.BIGINT, primary_key=True), 
    5    column('dt', Date), 
    6    column('security_id', mysql.VARCHAR), 

TypeError: column() got an unexpected keyword argument 'primary_key' 

如果我排除primary_key=True我得到另一个错误

`AttributeError: 'MetaData' object has no attribute 'key' 

回答

3

Python是区分大小写的语言

  • columnColumn在sqlalchemy中是不同的可调用的。
  • tableTable也不同可调用
  • float是Python的数据类型,而SQLAlchemy的类型是Float

尝试,重写你的代码段为:

from sqlalchemy import * 
from sqlalchemy.dialects import * 
metadata = MetaData() 
mydata123 = Table("dailymarketdata", metadata, 
        Column('data_id', mysql.BIGINT, primary_key=True), 
        Column('dt', Date), 
        Column('security_id', mysql.VARCHAR), 
        Column('open', Float), 
        Column('high', Float), 
        Column('low', Float), 
        Column('close', Float), 
        Column('ma200', Float), 
        Column('rtrend', mysql.TINYINT))