1
我在将元素插入MySQL数据库时遇到问题。当其中一个元素是Python字典时,向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' } ]
我在做什么错?
您只能将文本插入到数据库文本字段中。你会期望字典看起来像表达为一个字符串?在尝试插入之前,必须将其转换为该格式。 – 2013-02-11 19:11:22
我希望它会自动将字典转换为字符串。我会怎么做呢? – user1464409 2013-02-11 19:17:05