【问题标题】:JSON and MySQL UPDATE queryJSON 和 MySQL UPDATE 查询
【发布时间】:2016-11-23 09:24:18
【问题描述】:

我正在尝试通过 Python 从 ZeroMQ 中的 JSON msg 获取信息到 MySQL。这是我正在尝试运行的代码:

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()

但它又回来了:

1064, '您的 SQL 语法有错误

此时我真的可以用第二双眼睛,我觉得我完全错过了它。

输出sql变量返回:

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()

【问题讨论】:

  • 当您添加 2 个字符串值时,sql 会打印出什么?
  • 更新了原始帖子以包含您的 awnser 的问题。

标签: python mysql json


【解决方案1】:

你应该用单引号包裹你的参数:

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

您还必须确认您的 json 数据是正确的。

【讨论】:

    【解决方案2】:

    我会这样查询:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多