在mysql表“ section”中,我有5列(1个int,1个文本和3个json数组)。 JSON数组值以变量“ s”,“ l”和“ t”表示。我无法在表中插入值。我的代码如下:
mycursor.execute("""CREATE TABLE section (tid int, text text, spots json, spotl json, terms json)""")
s = json.dumps(["s1", "s2 s3"], ensure_ascii=False)
l = json.dumps(["L1", "L2"], ensure_ascii=False)
t = json.dumps(["t1", "t2"], ensure_ascii=False)
mycursor.execute("""INSERT INTO section (tid, text, spots, spotl, terms) VALUES ('101', 'pageview', ?, ?, ?)""", (s, l, t),)
print(mycursor.rowcount, " record inserted")
mycursor.execute("""SELECT * FROM section""")
x = mycursor.fetchall()
sp = x[0][2]
print(type(sp))
该行的错误是:“ mysql.connector.errors.ProgrammingError:SQL语句中未使用所有参数”:“ mycursor.execute(”“”“ INSERT INTO节(tid,文本,点,spotl,术语)”值('101','pageview',?,?,?)“”“,(s,l,t),)”。请帮忙。
最佳答案
我已经编辑了答案,请尝试以下操作:
mycursor.execute("""INSERT INTO section (tid, text, spots, spotl, terms) VALUES ('101', 'pageview', %s, %s, %s)""", (s, l, t))
您无法提取列,因为通过查看代码,您尚未提交查询。在mycursor.execute(Insert)之后编写commit语句。
关于python - 使用python在mysql表中插入JSON数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53149601/