如何修复Python中的“ TypeError:期望字符串或字节对象”错误

时间:2019-04-18 14:02:38

标签: python sql oracle sql-insert

我想在表格中插入一行。但是我遇到了TypeError:期望字符串或字节对象成为该错误。

  

回溯(最近通话最近):文件   “ d:\ Git \ Repos \ mavi \ oracle_connection.py”,第19行,在       c.prepare(QUERY,{“ expr”:expr,“ expr2”:expr2})TypeError:需要字符串或字节对象

import cx_Oracle
dsn_tns = cx_Oracle.makedsn(***)
conn = cx_Oracle.connect(***)
c = conn.cursor()

expr = bytes('', 'utf-8')
expr2 = bytes('ML_TEST', 'utf-8')

QUERY = '''
    INSERT INTO dev_log (LOG, SQ_DEV_LOG_ID, LF_TEKLIF_WS, PACKAGE BODY, LINE_NO)
    VALUES
    (:expr,:expr,:expr2,:expr,:expr)
'''

rows = [] 

c.prepare(QUERY,{"expr":expr, "expr2":expr2})      
c.executemany(None, rows)
conn.commit()

conn.close()

我该如何解决此问题?

1 个答案:

答案 0 :(得分:1)

尝试:

c.prepare(QUERY)      
c.executemany(None, [{"expr":expr, "expr2":expr2}])

从文档中看,您似乎应该将参数传递给executemany,而不是prepare

https://cx-oracle.readthedocs.io/en/latest/cursor.html