sql >> Database >  >> RDS >> Mysql

Python converteert het resultaat van de mysql-query naar json

U kunt de cursorbeschrijving gebruiken om rijkoppen te extraheren:row_headers=[x[0] for x in cursor.description] na het execute-statement. Dan kun je het zippen met het resultaat van sql om json-gegevens te produceren. Dus je code zal er ongeveer zo uitzien:

from flask import Flask
from flask.ext.mysqldb import MySQL
import json
app = Flask(__name__)
app.config['MYSQL_HOST'] = '127.0.0.1'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'hello_db'
mysql = MySQL(app)

@app.route('/hello')
def index():
   cur = mysql.connection.cursor()
   cur.execute('''SELECT * FROM Users WHERE id=1''')
   row_headers=[x[0] for x in cur.description] #this will extract row headers
   rv = cur.fetchall()
   json_data=[]
   for result in rv:
        json_data.append(dict(zip(row_headers,result)))
   return json.dumps(json_data)

if __name__ == '__main__':
   app.run(debug=True)

In het retourstatement kun je jsonify . gebruiken in plaats van json.dumps zoals voorgesteld door RickLan in de opmerkingen.



  1. Afbeeldingen opslaan in SQL Server?

  2. Verwijder meerdere rijen door selectievakjes te selecteren met PHP

  3. Importeer meerdere .sql-dumpbestanden in mysql-database vanuit shell

  4. Ontvang een lijst met datums tussen twee datums