Как исправить ошибку «TypeError: ожидание объекта строки или байта» в Python - PullRequest
1 голос
/ 18 апреля 2019

Я хочу вставить строку в таблицу. Но я получил TypeError: ожидание строки или байтов объекта этой ошибки.

Traceback (последний вызов был последним): File «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 Ответ

1 голос
/ 18 апреля 2019

Попробуйте:

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

Из документов похоже, что вы должны передавать свои параметры в executemany, а не prepare.

https://cx -oracle.readthedocs.io / ен / последний / cursor.html

...