2016-04-08 18 views
1

私はそのようなリストを挿入したいが、はるかに大きい。 list=[{"name":"Tom","gender":"male",},{"name":"Jack","gender":"male",},{"name":"Lee","gender":"male",}]をPythonを使用してMySQLにインポートしてテーブルを構築します。私はすでにMySQLdbをインポートしています。それではどうしたらいいですか?Pythonを使用してMySQLにdictのリストを挿入してください

+0

あなたは本当にこれを狭くする必要があるとしていますダウン。この構造から、列名が一致するテーブルになっていますか? – tadman

答えて

2

あなたがテーブルに辞書のリストを挿入するためにexecutemany()を使用する方法で、ここで、あなたはnamegender列を持つfooという名前のテーブルを持っていると仮定すると:

import MySQLdb 

db = MySQLdb.connect(...) 
cursor = db.cursor() 

data = [ 
    {"name":"Tom", "gender":"male"}, 
    {"name":"Jack", "gender":"male"}, 
    {"name":"Lee", "gender":"male"} 
] 
cursor.executemany(""" 
    INSERT INTO foo (name, gender) 
    VALUES (%(name)s, %(gender)s)""", data) 
db.commit() 
+0

ありがとう、それは有用です。しかし、自分のデータに使用するとうまくいきません。 – GUOJINGWEI

+0

自分自身は次のようなものです:data = [dict1、dict2、dict3] dict1 = {"name": "Tom"、 "source":u'240907112_1333816867 '、' Title ':u' \ u300a \ u8ba4 \ u771f \ u7684 \ u300b '、 "_id":u'47092'}。MySQLで私はすでにテーブルを構築してプライマリキーとして_idを使用していますが、値がuであるためだと思います。 – GUOJINGWEI

+0

@ GUOJINGWEI提案されたソリューションを実際のデータに適用しようとする際に別の質問を作成することが理にかなっているかどうかを確認してください。ありがとう。 – alecxe