如何使用Python / Flask在mysql行中存储列表?

时间:2017-04-15 07:31:37

标签: python mysql sqlalchemy

我从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:并非在字符串格式化期间转换所有参数

2 个答案:

答案 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以及那些帮助我的人。