我在将元素插入 MySQL 数据库时遇到问题。
这是我的代码:
#!/usr/bin/python
# -*- coding: utf-8 -*-
myData = [ { u'my_text' : {u'id': u'1', u'description' : u'described' }, u'my_id' : u'1' } ]
import MySQLdb as mdb
con = None
con = mdb.connect('localhost', 'abc', 'def', 'ghi');
cur = con.cursor()
con.set_character_set('utf8')
cur.execute('SET NAMES utf8;')
cur.execute('SET CHARACTER SET utf8;')
cur.execute('SET character_set_connection=utf8;')
sql = "INSERT IGNORE INTO MyTable ( 'my_id', 'my_text' ) VALUES ( %(my_id)s, %(my_text)s );"
cur.executemany(sql, myData)
con.commit()
if con: con.close()
我的数据库是用这个创建的:
CREATE TABLE MyTable(
'my_id' INT(10) unsigned NOT NULL,
'my_text' TEXT
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
正如您从 python 脚本中看到的那样,我的列表中的一个元素是字典,它似乎正在停止插入 MySQL 数据库,但由于我最近几天才开始使用 MySQL,所以我可能错了。
如果我my_text
在myData
一个简单的文本短语中进行如下操作,则一切正常,并且插入到数据库表中也可以正常工作:
myData = [ { u'my_text' : u'something simple', u'my_id' : u'1' } ]
我希望能够使用这个:
myData = [ { u'my_text' : {u'id': u'1', u'description' : u'described' }, u'my_id' : u'1' } ]
我究竟做错了什么?