Я знаю, когда вы хотите вставить некоторые символы utf8 в mysql, вы просто кодируете свои символы следующим образом:
# ... set the db to utf8-friendly
# ... some connection initialization
stmt = """INSERT INTO test (id, name) VALUES (%s, %s)"""
cursor.execute(stmt, (1001, u"小明".encode("utf8"))
conn.commit()
# ... close connection
Но если у меня есть словарь, содержащий символы utf8, и я пишу скрипт следующим образом:
mydict = {u"名字": u"小明", "sex": "male"}
mydict_str = json.dumps(mydict)
stmt = """INSERT INTO test (id, params) VALUES (%s, %s)"""
cursor.execute(stmt, (1001, mydict_str))
conn.commit()
Тогда я получил это:
---- + -----------
ID | params
---- + -----------
1001 | {"\u540d\u5b57": "\u5c0f\u660e", "sex": "male"} # what I want here is {"名字": "小明"...}
Я пробовал это, но ничего не произошло, была вставлена та же запись:
mydict = {u"名字".encode("utf8"): u"小明".encode("utf8"), "sex": "male"}
Какие-нибудь решения?