Я пытался изменить кодировку на ISO-8859-1, и это работает для первых двух запросов, но для остальных я есть ошибка частичный многобайтовый символ. Я также проверяю данные по запросу, а есть ли другие? замены.
Вот мой код (пожалуйста, игнорируйте учетные данные и запросы, я просто ввел несколько случайных значений)
`
Код: Выделить всё
os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.AL32UTF8'
connection = None
cursor = None
dir = './csv_files/'
queries = {
'file_name.csv': "SELECT * table",
'file_name.csv': "SELECT * FROM table",
}
if not os.path.exists(dir):
os.makedirs(dir)
try:
dsn_tns = cx_Oracle.makedsn('171.11.1.111', '1521', sid='ñññ')
connection = cx_Oracle.connect(user, password, dsn=dsn_tns, encoding='ISO-8859-1')
cursor = connection.cursor()
for file_name, query in queries.items():
try:
cursor.execute(query)
rows = cursor.fetchall()
columns = [col[0] for col in cursor.description]
dataFrame = pd.DataFrame(rows, columns=columns)
file_path = os.path.join(dir, file_name)
dataFrame.to_csv(file_path, index=False, encoding='utf-16', errors= 'replace')
except Exception as e:
print(f"Error in query for {file_name}: {e}")
continue
except Exception as e:
print(f"Error in connection: {e}")
finally:
if cursor is not None and connection is not None:
cursor.close()
Как я могу решить эту проблему, не удаляя данные конфликта из базы данных?
Я Пробовал менять кодировку, но ничего не помогает.
Подробнее здесь: https://stackoverflow.com/questions/790 ... tibyte-cha