Pandas: to_sql рдпреВрдирд┐рдХреЛрдбрдПрдирдХреЛрдб рддреНрд░реБрдЯрд┐

рдХреЛ рдирд┐рд░реНрдорд┐рдд 1 рд╕рд┐рддре░ 2015  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

sql рдХреЛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд▓рд┐рдЦрдирд╛ рдПрдХ UnicodeEncodeError рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА sys.defaultencoding "utf-8" рдкрд░ рд╕реЗрдЯ рд╣реЛ рдФрд░ mysql рдбреЗрдЯрд╛рдмреЗрд╕ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ utf-8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реЛред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? рдзрдиреНрдпрд╡рд╛рдж!

[рем] рдореЗрдВ: 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 in to_sql(self, name, con,
рд╕реНрд╡рд╛рдж, рд╕реНрдХреАрдорд╛, if_exists, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛_рд▓реЗрдмрд▓, рдЦрдВрдб рдЖрдХрд╛рд░, dtype)
репреореж рд╕реНрд╡рдпрдВ, рдирд╛рдо, рдЪреБрдирд╛рд╡, рд╕реНрд╡рд╛рдж = рд╕реНрд╡рд╛рдж, рд╕реНрдХреАрдорд╛ = рд╕реНрдХреАрдорд╛, if_exists = if_
рдореМрдЬреВрдж,
981 рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛ = рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛_рд▓реЗрдмрд▓ = рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛_рд▓реЗрдмрд▓, рдЦрдВрдб рдЖрдХрд╛рд░ = рдЦрдВрдб рдЖрдХрд╛рд░,
-> 982 рдбреАрдЯрд╛рдЗрдк = рдбреАрдЯрд╛рдЗрдк)
983
репреорек def to_pickle(рд╕реНрд╡рдпрдВ, рдкрде):

C:\Python27\lib\site-packages\pandas\io\sql.pyc in to_sql(frame, name, con, flav)
рдпрд╛, рд╕реНрдХреАрдорд╛, if_exists, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛_рд▓реЗрдмрд▓, рдЦрдВрдб рдЖрдХрд╛рд░, dtype)
547 pandas_sql.to_sql(рдлреНрд░реЗрдо, рдирд╛рдо, if_exists=if_exists, index=index,
релрекрео рдЗрдВрдбреЗрдХреНрд╕_рд▓реЗрдмрд▓ = рдЗрдВрдбреЗрдХреНрд╕_рд▓реЗрдмрд▓, рд╕реНрдХреАрдорд╛ = рд╕реНрдХреАрдорд╛,
--> релрекреп рдЪрдВрдХреНрд╕рд╕рд╛рдЗрдЬ = рдЪрдВрдХреНрд╕рд╕рд╛рдЗрдЬ, рдбреАрдЯрд╛рдЗрдк = рдбреАрдЯрд╛рдЗрдк)
550
551

C:\Python27\lib\site-packages\pandas\io\sql.pyc to_sql рдореЗрдВ (рд╕реНрд╡рдпрдВ, рдлреНрд░реЗрдо, рдирд╛рдо, if_
рдореМрдЬреВрдж рд╣реИ, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛, рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛_рд▓реЗрдмрд▓, рд╕реНрдХреАрдорд╛, рдЪрдВрдХреНрд╕рд╛рдЗрдЬрд╝, dtype)
резрезреорем рд╕реНрдХреАрдорд╛=рд╕реНрдХреАрдорд╛, dtype=dtype)
резрезреорен рдЯреЗрдмрд▓.рдХреНрд░рд┐рдПрдЯ ()
-> 1188 рдЯреЗрдмрд▓.рдЗрдиреНрд╕рд░реНрдЯ (рдЪрдВрдХрд╕рд╛рдЗрдЬ)
1189 # рд╕рдВрднрд╛рд╡рд┐рдд рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓рддрд╛ рдореБрджреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░реЗрдВ (GH7815)
резрезрепреж рдпрджрд┐ рдирд╛рдо self.engine.table_names(schema=schema or self.met .) рдореЗрдВ рдирд╣реАрдВ рд╣реИ
рдП.рд╕реНрдХреАрдорд╛):

C:\Python27\lib\site-packages\pandas\io\sql.pyc рдЗрдиреНрд╕рд░реНрдЯ (рд╕реНрд╡рдпрдВ, рдЪрдВрдХреНрд╕рд╕рд╛рдЗрдЬ) рдореЗрдВ
726
ренреирен chunk_iter = рдЬрд╝рд┐рдк (* [рдЧрд┐рд░рдлреНрддрд╛рд░реА [start_i: end_i] data_li рдореЗрдВ рдЧрд┐рд░рдлреНрддрд╛рд░реА рдХреЗ рд▓рд┐рдП
рдЕрдиреБрд╕реВрдЪрд┐рдд рдЬрдирдЬрд╛рддрд┐])
-> ренреирео рд╕реНрд╡рдпрдВ._execute_insert(conn, keys, chunk_iter)
729
ренрейреж def _query_iterator(рд╕реНрд╡рдпрдВ, рдкрд░рд┐рдгрд╛рдо, рдЦрдВрдб рдЖрдХрд╛рд░, рдХреЙрд▓рдо, coerce_float=T
рд░реБрдП,

C:\Python27\lib\site-packages\pandas\io\sql.pyc in _execute_insert(self, conn, k
рдЖрдВрдЦреЗрдВ, рдбреЗрдЯрд╛_рдЗрдЯрд░)
701 def _execute_insert (рд╕реНрд╡рдпрдВ, conn, рдХреБрдВрдЬрд┐рдпрд╛рдБ, data_iter):
702 рдбреЗрдЯрд╛ = [рддрд╛рдирд╛рд╢рд╛рд╣реА ((k, v) k рдХреЗ рд▓рд┐рдП, v рдЬрд╝рд┐рдк рдореЗрдВ (рдХреБрдВрдЬреА, рдкрдВрдХреНрддрд┐)) рдбреЗрдЯрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐ рдХреЗ рд▓рд┐рдП_
рдЗрдЯрд░]
--> 703 conn.execute (self.insert_statement (), рдбреЗрдЯрд╛)
ренрежрек
705 рдбреАрдИрдПрдлрд╝ рдЗрдВрд╕рд░реНрдЯ (рд╕реНрд╡рдпрдВ, рдЪрдВрдХреНрд╕рд╛рдЗрдЬрд╝ = рдХреЛрдИ рдирд╣реАрдВ):

C:\Python27\lib\site-packages\sqlalchemy\engine\base.pyc рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ (рд╕реНрд╡рдпрдВ, рд╡рд╕реНрддреБ
, _рдорд▓реНрдЯреАрдкрд░рдореНрд╕, *_рдкрд░рдореНрд╕)
912 рдкреНрд░рдХрд╛рд░ (рд╡рд╕реНрддреБ))
913 рдЕрдиреНрдп:
--> 914 рд░рд┐рдЯрд░реНрди рдореЗрде (рд╕реЗрд▓реНрдл, рдорд▓реНрдЯреАрдкрд░рдореНрд╕, рдкреИрд░рд╛рдореНрд╕)
915
916 рдбреАрдИрдПрдлрд╝ _execute_function (рд╕реНрд╡рдпрдВ, func, multiparams, params):

C:\Python27\lib\site-packages\sqlalchemy\sql\elements.pyc _execute_on_connect рдореЗрдВ
рдЖрдпрди (рд╕реНрд╡рдпрдВ, рдХрдиреЗрдХреНрд╢рди, рдорд▓реНрдЯреАрдкрд░рдореНрд╕, рдкрд░рдо)
321
322 рдбреАрдИрдПрдлрд╝ _execute_on_connection (рд╕реНрд╡рдпрдВ, рдХрдиреЗрдХреНрд╢рди, рдорд▓реНрдЯреАрдкрд░рдореНрд╕, рдкреИрд░рд╛рдореНрд╕):
-> рейреирей рд░рд┐рдЯрд░реНрди рдХрдиреЗрдХреНрд╢рди._execute_clauseelement(рд╕реНрд╡рдпрдВ, рдорд▓реНрдЯреАрдкрд░рдореНрд╕, рдкреИрд░рд╛
рдПрдордПрд╕)
324
325 рдбреАрдИрдПрдлрд╝ рдпреВрдирд┐рдХ_рдкрд░рдореНрд╕ (рд╕реНрд╡рдпрдВ, _Optionaldict, *_kwargs):

C:\Python27\lib\site-packages\sqlalchemy\engine\base.pyc _execute_clauseeleme рдореЗрдВ
рдПрдирдЯреА (рд╕реНрд╡рдпрдВ, elem, multiparams, params)
1008 рд╕рдВрдХрд▓рд┐рдд_рдПрд╕рдХреНрдпреВрдПрд▓,
1009 рдбрд┐рд╕реНрдЯрд┐рд▓реНрдб_рдкрд░рдореНрд╕,
-> 1010 рд╕рдВрдХрд▓рд┐рдд_рдПрд╕рдХреНрдпреВрдПрд▓, рдбрд┐рд╕реНрдЯрд┐рд▓реНрдб_рдкрд░рдореНрд╕
резрежрезрез)
резрежрезреи рдЕрдЧрд░ рд╕реНрд╡рдпрдВ._рд╣реИрд╕_рдЗрд╡реЗрдВрдЯреНрд╕ рдпрд╛ рд╕реЗрд▓реНрдл.рдЗрдВрдЬрди._рд╣реИрд╕_рдЗрд╡реЗрдВрдЯреНрд╕:

C:\Python27\lib\site-packages\sqlalchemy\engine\base.pyc _execute_context(sel) рдореЗрдВ
f, рдмреЛрд▓реА, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░, рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ, рдкреИрд░рд╛рдореАрдЯрд░, *args)
1144 рдкреИрд░рд╛рдореАрдЯрд░,
1145 рдХрд░реНрд╕рд░,
-> 1146 рд╕рдВрджрд░реНрдн)
резрезрекрен
резрезрекрео рдЕрдЧрд░ рд╕реНрд╡._рд╣реИрд╕_рдЗрд╡реЗрдВрдЯреНрд╕ рдпрд╛ рд╕реЗрд▓реНрдл.рдЗрдВрдЬрди._рд╣реИрд╕_рдЗрд╡реЗрдВрдЯреНрд╕:

C:\Python27\lib\site-packages\sqlalchemy\engine\base.pyc _handle_dbapi_except рдореЗрдВ
рдЖрдпрди (рд╕реНрд╡рдпрдВ, рдИ, рдмрдпрд╛рди, рдкреИрд░рд╛рдореАрдЯрд░, рдХрд░реНрд╕рд░, рд╕рдВрджрд░реНрдн)
резрейрекреи)
1343 рдЕрдиреНрдп:
-> резрейрекрек util.reraise(*exc_info)
резрейрекрел
резрейрекрем рдЕрдВрдд рдореЗрдВ:

C:\Python27\lib\site-packages\sqlalchemy\engine\base.pyc _execute_context(sel) рдореЗрдВ
f, рдмреЛрд▓реА, рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░, рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ, рдкреИрд░рд╛рдореАрдЯрд░, *args)
резрезрезрек рдХрдерди,
1115 рдкреИрд░рд╛рдореАрдЯрд░,
-> 1116 рд╕рдВрджрд░реНрдн)
1117 elif рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рд╕рдВрджрд░реНрдн рдирд╣реАрдВред no_parameters:
резрезрезрео рдпрджрд┐ рд╕реНрд╡.рдмреЛрд▓реА._рд╣реИрд╕_рдЗрд╡реЗрдВрдЯреНрд╕:

C:\Python27\lib\site-packages\sqlalchemy\dialects\mysql\mysqldb.pyc do_execut рдореЗрдВ
emany (рд╕реНрд╡рдпрдВ, рдХрд░реНрд╕рд░, рдХрдерди, рдкреИрд░рд╛рдореАрдЯрд░, рд╕рдВрджрд░реНрдн)
репрей
репрек рдбреАрдИрдПрдлрд╝ do_executemany(рд╕реНрд╡рдпрдВ, рдХрд░реНрд╕рд░, рдХрдерди, рдкреИрд░рд╛рдореАрдЯрд░, рд╕рдВрджрд░реНрдн=рдХреЛрдИ рдирд╣реАрдВ
):
---> 95 рдкрдВрдХреНрддрд┐ рдЧрдгрдирд╛ = рдХрд░реНрд╕рд░.executemany (рдХрдерди, рдкреИрд░рд╛рдореАрдЯрд░)
96 рдпрджрд┐ рдкреНрд░рд╕рдВрдЧ рдХреЛрдИ рдирд╣реАрдВ рд╣реИ:
репрен рд╕рдВрджрд░реНрдн._рд░реЛрдХрд╛рдЙрдВрдЯ = рд░реЛрдХрд╛рдЙрдВрдЯ

C:\Python27\lib\site-packages\pymysql\cursors.pyc рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ (рд╕реНрд╡рдпрдВ, рдХреНрд╡реЗрд░реА, ar
рдЬреАрдПрд╕)
резрелрей рд╡рд╛рдкрд╕реА рд╕реНрд╡рдпрдВ._do_execute_many(q_prefix, q_values, q_postfix,
рддрд░реНрдХ,
резрелрек рд╕реНрд╡.max_stmt_length,
-> 155 рд╕реНрд╡._get_db ()ред рдПрдиреНрдХреЛрдбрд┐рдВрдЧ)
резрелрем
резрелрен self.rowcount = sum(self.execute(query, arg) args рдореЗрдВ arg рдХреЗ рд▓рд┐рдП)

C:\Python27\lib\site-packages\pymysql\cursors.pyc in _do_execute_many(self, Pref
ix, рдорд╛рди, рдкреЛрд╕реНрдЯрдлрд╝рд┐рдХреНрд╕, args, max_stmt_length, рдПрдиреНрдХреЛрдбрд┐рдВрдЧ)
179 рдЕрдЧрд░ isinstance (v, text_type):
180 рдЕрдЧрд░ PY2:
-> 181 рд╡реА = рд╡реА.рдПрдирдХреЛрдб (рдПрдиреНрдХреЛрдбрд┐рдВрдЧ)
182 рдЕрдиреНрдп:
резреорей рд╡реА = рд╡реА.рдПрдирдХреЛрдб (рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, 'рд╕рд░реЛрдЧреЗрдЯрд╕реНрдХреЗрдк')

UnicodeEncodeError: 'рд▓реИрдЯрд┐рди -1' рдХреЛрдбреЗрдХ 433-438 рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд░реНрдгреЛрдВ рдХреЛ рдПрдиреНрдХреЛрдб рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛:
рдХреНрд░рдорд┐рдХ рд╕реАрдорд╛ рдореЗрдВ рдирд╣реАрдВ(256)

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рд╢реБрдХреНрд░рд┐рдпрд╛! create_engine() рдХреЙрд▓ рдореЗрдВ '?charset=utf8' рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдЖрдкрдиреЗ engine рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдерд╛? рджреЗрдЦреЗрдВ http://docs.sqlalchemy.org/en/rel_1_0/core/engines.html#engine -creation-api

рдФрд░ рдХреНрдпрд╛ рдЖрдк рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? (рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ)

рд╢реБрдХреНрд░рд┐рдпрд╛! create_engine() рдХреЙрд▓ рдореЗрдВ '?charset=utf8' рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП: 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рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

idanivanov picture idanivanov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ericdf picture ericdf  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

andreas-thomik picture andreas-thomik  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mfmain picture mfmain  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ