Mysql
 sql >> база данни >  >> RDS >> Mysql

Python преобразува резултата от mysql заявка в json

Можете да използвате описанието на курсора, за да извлечете заглавки на редове:row_headers=[x[0] for x in cursor.description] след оператора за изпълнение. След това можете да го архивирате с резултата от sql, за да произведете json данни. Така вашият код ще бъде нещо като:

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)

В оператора за връщане можете да използвате jsonify вместо json.dumps както е предложено от RickLan в коментарите.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. изберете всеки друг ред в MySQL, без да зависи от какъвто и да е идентификатор?

  2. Как да избягам от апострофа (') в MySql?

  3. Най-бързият начин за вмъкване на 134675 стойности в отдалечена база данни

  4. MySQL Cast като Boolean

  5. Как да заредя предварително таблици в INNODB буферен пул с MySQL?