我从html表单中获取了一些值,并将这些值存储到列表中。列表就像:
["string1", "string2", "string3", "string4", "string5"]
我想将这些值存储在mysql的行中,但我很困惑怎么办?
到目前为止我所做的是:
descrip = []
descrip.append(description1)
descrip.append(description2)
descrip.append(description3)
descrip.append(description4)
descrip.append(description5)
for r in descrp:
result_descrp = db.execute("""INSERT INTO description(id,description) VALUES (1,%s)""",((descrip))
return render_template('forms/success.html')
但是我收到了这个错误:
TypeError:并非在字符串格式化期间转换所有参数
答案 0 :(得分:0)
首先,您在期望%s
的格式字符串中使用占位符str
。但是你将list
传递给它。
我不知道架构中description
的类型。如果您只想将列表的字符串表示保存在数据库中,则可以使用str(desciption)
将列表转换为str。
Mysql
也支持json type字段。(MariaDB也支持json类型。)
答案 1 :(得分:0)
descrip = []
descrip.append(description1)
descrip.append(description2)
descrip.append(description3)
descrip.append(description4)
descrip.append(description5)
for r in range(5):
if descrip[r]:
result_add_event = db.execute("""INSERT INTO event_description(event_id,title,description, created_at) VALUES (%s,%s,%s)""",(id,descrip[r],timestamp))
上面的代码工作得很好。 :)
特别感谢@shiva以及那些帮助我的人。