2017-04-27 13 views
-1

だから私はこのコードを持っている:どのようにして配列の配列をFlaskのオブジェクトの配列に変換できますか?

@app.route("/") 
def users(): 
    try: 
     c, conn = connection() 
     c.execute(''' SELECT * FROM users ''') 
     rv = c.fetchall() 
     return jsonify(rv) 
    except Exception as e: 
     return(str(e)) 

を、出力は次のようになります。

[ 
    [ 
    1, 
    "Robert Soriano", 
    "[email protected]", 
    24 
    ], 
    [ 
    2, 
    "Charmaine Villar", 
    "[email protected]\r\n", 
    23 
    ] 
] 

が、私は安らかなAPIをやっておりますので、私はそれはのようなオブジェクトになりたいです

try: 
     c, conn = connection() 
     c.execute(''' SELECT * FROM users ''') 
     rv = list(c.fetchall()) #converted to list 
     return jsonify(rv) 
    except Exception as e: 
     return(str(e)) 

[ 
    { 
    1, 
    "Robert Soriano", 
    "[email protected]", 
    24 
    }, 
    { 
    2, 
    "Charmaine Villar", 
    "[email protected]\r\n", 
    23 
    } 
] 
は、私のような何かを試してみました

しかし、私はまだ同じ出力を取得します。

ここに何か不足していますか?事前に感謝します

+0

@McGradyありがとうございます。これを修正する最も良い方法は何ですか? – FewFlyBy

+0

'{1、" Robert "}'はPythonのセットであり、辞書やオブジェクトではありません(Javascriptで)、Json文字列を生成したいと思います。http://www.json.orgを見てください/またはhttps://en.wikipedia.org/wiki/JSON – McGrady

答えて

0

私はあなたが使用しているdbドライバを知りません。私はpymysqlでテストします。 cursor.fetchall()の結果とその要素はすべてtupleです。 collections.namedtupleを使用して、各レコードの各要素にフィールド名を割り当てることができます。

Record = collections.namedtuple("Record", ["id", "name", "email", "age"]) 

result = cursor.fetchall() 

records = [Record(*record)._asdict() for record in result] 

優れたツールRecords: SQL for Humans™があります。

関連する問題