2016-07-20 8 views
1

私はPythonでMySQLにZeroMQのJSON msgから情報を取得しようとしています。JSONとMySQL UPDATEクエリ

for i in json_msg["PropertyInfoMsg"]: 
    db2 = MySQLdb.connect(host="localhost", user="user", passwd="pass", db="db") 
    cursor2 = db2.cursor() 
    sql = """UPDATE settings SET value=%s WHERE name=%s""" % (i["PropertyType"].lower(), i["PropertyValue"].lower()) 
    cursor2.execute(sql) 
    db2.commit() 
    cursor2.close() 

しかし、それはとして戻って来ています:これは私が実行しようとしているコードの一部である私はあなたのSQL構文で

をエラーを持っている」、

1064この時点でこれで2番目の目を実際に使うことができました。私は完全にそれを見逃しているように感じます。私は、クエリをこの方法で行うだろう

UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
UPDATE settings SET value=i["PropertyType"].lower() WHERE name=i["PropertyValue"].lower() 
+0

2文字列の値を追加するとき、 'sql'は何を出力しますか? – Carlos

+0

あなたのawnserの質問を含めるように元の投稿を更新しました。 – user5740843

答えて

2

あなたは、単一引用符を使用してパラメータをラップする必要があります。

sql = """UPDATE settings SET value='%s' WHERE name='%s'""" % (i["PropertyType"].lower(), i["PropertyValue"].lower()) 

また、SQL変数のリターンを出しPriting

あなたのjsonデータが正しいことを確認する必要があります。

2

cursor2.execute("UPDATE settings SET value = %s WHERE name = %s",(i["PropertyType"].lower(), i["PropertyValue"].lower()))