2010-08-17 40 views
2

我使用SQLAlchemy的0.5.8,看到這個錯誤:SQLAlchemy ProgrammingError - 如何調試?

ProgrammingError: (ProgrammingError) can't adapt 'INSERT INTO enumeration_value (id, 
key_id, code, name, notes) VALUES (%(id)s, %(key_id)s, %(code)s, %(name)s, %(notes)s)' 
{'key_id': 'aac6fc29-4ccd-4fe4-9118-cfbbd04449fe', 'notes': '', 'code': (u'Barnet',), 
'id': 'd0540c97-882e-4a5b-bf14-b3ebcfeea051', 'name': (u'Barnet',)} 

但是從誤差值的直接SQL插入似乎就好了工作:

=> INSERT INTO enumeration_value (id, key_id, code, name, notes) 
VALUES ('d0540c97-882e-4a5b-bf14-b3ebcfeea051', 'aac6fc29-4ccd-4fe4-9118-cfbbd04449fe', 
'Barnet', 'Barnet', ''); 
INSERT 0 1 

如果直接SQL工作正常,我該如何開始調試呢?

順便說一句,這是引發錯誤似乎並沒有在它的INSERT語句都行,所以我有點困惑:

File "----barnet.py", line 117, in load_file 
    instance = model.Session.query(model.EnumerationValue).filter_by(key=key_barnet_level_2, code=level_2).all() 

待辦事項SQLAlchemy的過濾器語句生成INSERT命令,或做這恰好是事情開始出錯之前的最後一行?

回答

1

想通了 - 這個問題實際上是一個語法錯誤的幾行上漲,與流氓逗號:

key_from = code, 

對不起,如果我浪費任何人的時間。請關閉該問題。