Pandas: to_sql UnicodeEncodeError

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 1 сСнт. 2015  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: pandas-dev/pandas

запись Ρ„Ρ€Π΅ΠΉΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π² sql Π΄Π°Π΅Ρ‚ UnicodeEncodeError, хотя sys.defaultencoding ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«utf-8Β», Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… mysql Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ utf-8 Π² качСствС сопоставлСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π›ΡŽΠ±Ρ‹Π΅ ΠΈΠ΄Π΅ΠΈ? Бпасибо!

Π’ [6]: df1.to_sql (name = 'webshoptracks2', con = engine)

UnicodeEncodeError Traceback (послСдний Π²Ρ‹Π·ΠΎΠ² послСдним)
Π²()
----> 1 df1.to_sql (name = 'webshoptracks2', con = engine)

C: \ Python27 \ lib \ site-packages \ pandas \ core \ generic.pyc Π² to_sql (self, name, con,
Π°Ρ€ΠΎΠΌΠ°Ρ‚, схСма, if_exists, index, index_label, chunksize, dtype)
980 я, имя, ΠΏΡ€ΠΎΡ‚ΠΈΠ², Π°Ρ€ΠΎΠΌΠ°Ρ‚ = Π°Ρ€ΠΎΠΌΠ°Ρ‚, схСма = схСма, if_exists = if_
ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚,
981 index = index, index_label = index_label, chunksize = chunksize,
-> 982 dtype = dtype)
983
984 def to_pickle (сам, ΠΏΡƒΡ‚ΡŒ):

C: \ Python27 \ lib \ site-packages \ pandas \ io \ sql.pyc Π² to_sql (frame, name, con, flav
ΠΈΠ»ΠΈ, схСма, if_exists, index, index_label, chunksize, dtype)
547 pandas_sql.to_sql (Ρ„Ρ€Π΅ΠΉΠΌ, имя, if_exists = if_exists, index = index,
548 ΠΌΠ΅Ρ‚ΠΊΠ°_индСкса = ΠΌΠ΅Ρ‚ΠΊΠ°_индСкса, схСма = схСма,
-> 549 chunksize = chunksize, dtype = dtype)
550
551

C: \ Python27 \ lib \ site-packages \ pandas \ io \ sql.pyc Π² to_sql (self, frame, name, if_
сущСствуСт, индСкс, index_label, schema, chunksize, dtype)
1186 схСма = схСма, dtype = dtype)
1187 table.create ()
-> 1188 table.insert (Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°)
1189 # ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊ рСгистру (GH7815)
1190, Ссли имя отсутствуСт Π² self.engine.table_names (schema = schema ΠΈΠ»ΠΈ self.met
a.schema):

C: \ Python27 \ lib \ site-packages \ pandas \ io \ sql.pyc Π² вставкС (self, chunksize)
726
727 chunk_iter = zip (* [arr [start_i: end_i] для arr в data_li
st])
-> 728 self._execute_insert (соСдинСниС, ΠΊΠ»ΡŽΡ‡ΠΈ, chunk_iter)
729
730 def _query_iterator (self, result, chunksize, columns, coerce_float = T
Ρ€ΡƒΡ‚Π°,

C: \ Python27 \ lib \ site-packages \ pandas \ io \ sql.pyc Π² _execute_insert (self, conn, k
эйс, data_iter)
701 def _execute_insert (self, conn, keys, data_iter):
702 data = [dict ((k, v) для k, v Π² zip (keys, row)) для строки Π² data_
iter]
-> 703 conn.execute (self.insert_statement (), Π΄Π°Π½Π½Ρ‹Π΅)
704
705 def insert (self, chunksize = None):

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ engine \ base.pyc Π² execute (self, object
, _multiparams, * _params)
912 Ρ‚ΠΈΠΏ (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚))
913 Π΅Ρ‰Π΅:
-> 914 Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚ (self, multiparams, params)
915
916 def _execute_function (self, func, multiparams, params):

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ sql \ elements.pyc Π² _execute_on_connect
ion (self, connection, multiparams, params)
321
322 def _execute_on_connection (self, connection, multiparams, params):
-> 323 Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ соСдинСниС ._execute_clauseelement (self, multiparams, para
Π Π‘)
324
325 def unique_params (self, _optionaldict, * _kwargs):

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ engine \ base.pyc Π² _execute_clauseeleme
nt (self, elem, multiparams, params)
1008 compiled_sql,
1009 distilled_params,
-> 1010 compiled_sql, distilled_params
1011)
1012, Ссли self._has_events или self.engine._has_events:

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ engine \ base.pyc Π² _execute_context (sel
f, Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚, конструктор, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, * Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)
1144 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°,
1145 курсор,
-> 1146 контСкст)
1147
1148, Ссли self._has_events или self.engine._has_events:

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ engine \ base.pyc Π² _handle_dbapi_except
ion (self, e, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, курсор, контСкст)
1342)
Π•Ρ‰Π΅ 1343:
-> 1344 util.reraise (* exc_info)
1345
1346 Π½Π°ΠΊΠΎΠ½Π΅Ρ†:

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ engine \ base.pyc Π² _execute_context (sel
f, Π΄ΠΈΠ°Π»Π΅ΠΊΡ‚, конструктор, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, * Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹)
Выписка 1114,
1115 ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²,
-> 1116 контСкст)
1117 elif not ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ context.no_parameters:
1118, Ссли self.dialect._has_events:

C: \ Python27 \ lib \ site-packages \ sqlalchemy \ dialects \ mysql \ mysqldb.pyc Π² do_execut
emany (self, курсор, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, контСкст)
93
94 def do_executemany (self, курсор, инструкция, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, context = None
):
---> 95 rowcount = cursor.executemany (инструкция, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹)
96, Ссли контСкст Π½Π΅ Ρ€Π°Π²Π΅Π½ None:
97 context._rowcount = количСство строк

C: \ Python27 \ lib \ site-packages \ pymysql \ cursors.pyc Π² executemany (self, query, ar
gs)
153 return self._do_execute_many (q_prefix, q_values, q_postfix,
Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹,
154 self.max_stmt_length,
-> 155 ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° self._get_db ().)
156
157 self.rowcount = sum (self.execute (query, arg) для Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² args)

C: \ Python27 \ lib \ site-packages \ pymysql \ cursors.pyc Π² _do_execute_many (self, pref
ix, значСния, постфикс, Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, max_stmt_length, ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°)
179, Ссли isinstance (v, text_type):
180, Ссли PY2:
-> 181 v = v.encode (ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°)
182 Π΅Ρ‰Π΅:
183 v = v.encode (ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°, 'surrogateescape')

UnicodeEncodeError: ΠΊΠΎΠ΄Π΅ΠΊ latin-1 Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ символы Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 433-438:
порядковый Π½ΠΎΠΌΠ΅Ρ€ Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° (256)

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Бпасибо! Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ '? Charset = utf8' ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ create_engine () Ρ€Π΅ΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ engine ? Π‘ΠΌ. Http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#engine -creation-api.

А ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ привСсти воспроизводимый ΠΏΡ€ΠΈΠΌΠ΅Ρ€? (нСбольшой Ρ„Ρ€Π΅ΠΉΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ)

Бпасибо! Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ '? Charset = utf8' ΠΊ Π²Ρ‹Π·ΠΎΠ²Ρƒ create_engine () Ρ€Π΅ΡˆΠΈΠ»ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

для справки Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ: http://docs.sqlalchemy.org/en/rel_1_0/dialects/mysql.html?highlight=charset#unicode

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ

Π‘ΠΌΠ΅ΠΆΠ½Ρ‹Π΅ вопросы

amelio-vazquez-reina picture amelio-vazquez-reina  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

songololo picture songololo  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

hiiwave picture hiiwave  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

marcelnem picture marcelnem  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ

tade0726 picture tade0726  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ