Я пытаюсь создать CSV данных из MySQL RDB, чтобы перенести их в Amazon Redshift. Однако одно из полей содержит описания, а некоторые из этих описаний содержат символ '' 'или правую одинарную кавычку. раньше, когда я запускал код, он давал мне
UnicodeEncodeError: 'charmap' codec can't encode character '\x92' in position 62: character maps to <undefined>
Затем я попытался использовать REPLACE, чтобы попытаться избавиться от правильных одинарных кавычек.
db = pymysql.connect(host='host', port=3306, user="user", passwd="password", db="db", autocommit=True)
cur = db.cursor()
#cur.execute("call inv1_view_prod.`Email_agg`")
cur.execute("""select field_1,
field_2,
field_3,
field_4,
replace(field_4_desc,"’","") field_4_desc,
field_5,
field_6,
field_7
from table_name """)
emails = cur.fetchall()
with open('O:\file\path\to\file_name.csv','w') as fileout:
writer = csv.writer(fileout)
writer.writerows(emails)
time.sleep(1)
Однако, это дало мне ошибку:
UnicodeEncodeError: 'latin-1' codec can't encode character '\u2019' in position 132: ordinal not in range(256)
И я заметил, что 132 - это позиция правой одинарной кавычки в операторе SQL, поэтому я уверен, что сам код может иметь проблемы с ним. Я попытался использовать обычный прямой апостроф вместо правой одинарной кавычки в выражении REPLACE, однако это не заменило символ и все равно вернулось с исходной ошибкой. Кто-нибудь знает, почему он не примет одинарную кавычку и как ее исправить?