Python 更新Varchars SQLALCHEMY数组时出现问题

Python 更新Varchars SQLALCHEMY数组时出现问题,python,postgresql,flask,sqlalchemy,flask-sqlalchemy,Python,Postgresql,Flask,Sqlalchemy,Flask Sqlalchemy,当我尝试使用SQLALCHEMY升级一个varchar数组时,我遇到了一些问题。 例如,我的输入是: ['Particular','Comercial'] 但在我的数据库中,它显示为: ['[', "'", 'P', 'a', 'r', 't', 'i', 'c', 'u', 'l', 'a', 'r', "'", ',', "'", 'C', 'o', 'm', 'e', 'r', 'c', 'i', 'a', 'l', "'", ']'] 我要更新的烧瓶代码如下: @app.route(

当我尝试使用SQLALCHEMY升级一个varchar数组时,我遇到了一些问题。 例如,我的输入是:

['Particular','Comercial']
但在我的数据库中,它显示为:

['[', "'", 'P', 'a', 'r', 't', 'i', 'c', 'u', 'l', 'a', 'r', "'", ',', "'", 'C', 'o', 'm', 'e', 'r', 'c', 'i', 'a', 'l', "'", ']']
我要更新的烧瓶代码如下:

@app.route('/update', methods=['GET', 'POST'])
def update():
    if request.method == 'POST':
        my_data = Data.query.get(request.form.get('id_auto'))

        my_data.modelo = request.form['modelo']
        my_data.anofabricacion = request.form['anofabricacion']
        my_data.concesionario = request.form['concesionario']
        my_data.foto = request.form['foto']
        my_data.documentacion = request.form['documentacion']
        my_data.precio = request.form['precio']
        my_data.moneda = request.form['moneda']
        print(request.form['ciudadesdisp'])
        my_data.ciudadesdisp = request.form['ciudadesdisp']
        print(my_data.ciudadesdisp)
        print(my_data)
        my_data.tipocarroceria = request.form['tipocarroceria']
        my_data.sku = request.form['sku']
        print(request.form['usoauto'])
        my_data.usoauto = request.form['usoauto']
        print(my_data.usoauto)
        my_data.marca = request.form['marca']

        print(request.form.get('presentar'))

        if request.form.get('presentar') == 'on':
            print("entro if")
            my_data.presentar = True

        else:
            print("entro else")
            my_data.presentar = False

        db.session.commit()
        flash("¡Auto actualizado satisfactoriamente!")

        return redirect(url_for('Index'))
下面是我如何宣布我的班级:

class Data(db.Model):
    __tablename__ = 'autos'
    id_auto = db.Column(db.VARCHAR, primary_key=True)
    modelo = db.Column(db.VARCHAR(255))
    anofabricacion = db.Column(db.BIGINT)
    concesionario = db.Column(db.VARCHAR(255))
    foto = db.Column(db.VARCHAR(255))
    documentacion = db.Column(db.VARCHAR(255))
    precio = db.Column(db.BIGINT)
    moneda = db.Column(db.VARCHAR(255))
    ciudadesdisp = db.Column(db.ARRAY(VARCHAR(255)))
    tipocarroceria = db.Column(db.VARCHAR(255))
    sku = db.Column(db.VARCHAR(255))
    usoauto = db.Column(db.ARRAY(VARCHAR(255)))
    marca = db.Column(db.VARCHAR(255))
    presentar = db.Column(db.BOOLEAN)

有人知道为什么会发生这种情况吗?

嗨@송기두, 我在尝试您的解决方案时遇到了这个错误:
从None 2020-06-09T02:38:13.048127+00:00应用程序[web.1]:json.decoder.jsondecoderror:Expecting value:line 1 column 2(char 1)
问题是输入必须是这样的:
[“special”,“commercial”]
,基本上是双引号。
import json
json.loads(request.form['ciudadesdisp'])
json.loads(request.form['usoauto'])