【问题标题】:SQL Alchemy : Table primary_key - unexpected keyword argument errorSQL Alchemy:表 primary_key - 意外的关键字参数错误
【发布时间】:2017-04-11 00:11:43
【问题描述】:

我不断收到关于 primary_key=True 的以下错误。请有人指出我哪里出错了。我正在尝试关注:

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'

【问题讨论】:

    标签: python mysql sqlalchemy keyword


    【解决方案1】:

    Python 是区分大小写的语言

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

    尝试,将你的 sn-p 重写为:

    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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2015-12-11
      • 2019-01-05
      相关资源
      最近更新 更多