2017-04-11 101 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))