1

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スクリプトからわかるように、私のリストの1つの要素は辞書であり、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' } ]

私は何が間違っているのですか?

4

1 に答える 1