在python Flask中将结果转换为json

我正在 python 烧瓶中创建 apis。我将 MySQL 用于数据库并使用 SELECT 查询成功获取数据。我已经使用flask的jsonify以json格式返回了数据。我想问的是,在使用整数作为索引的 jsonify 之后,我得到以下格式的 json


[

 [

  1, 

  "FURNITURE", 

  "INDOOR FURNITURE"

 ], 

 [

  2, 

  "AUTOMOBILES", 

  "CARS, BIKES"

 ], 

 [

  3, 

  "LAPTOP & ACCESSORIES", 

  "LAPTOP, MOUSE, KEY BOARD, PENDRIVE"

 ]

]

很好,我可以使用它,但我正在寻找具有数据库表属性作为其索引的 json,就像我们可以在 nodejs 中获取一样,因此在字体端工作会更容易。我想要以下格式的 json,其中索引是我的数据库表列名。


[

 { "CATEGORY_ID":1,

   "CATEGORY_NAME":"FURNITURE",

   "DESCRIPTION":"INDOOR FURNITURE"

 },

 { "CATEGORY_ID":2,

   "CATEGORY_NAME":"AUTOMOBILES",

   "DESCRIPTION":"CARS, BIKES"

 },

 { "CATEGORY_ID":3,

   "CATEGORY_NAME":"LAPTOP & ACCESSORIES",

   "DESCRIPTION":"LAPTOP, MOUSE, KEY BOARD, PENDRIVE"

 }

]


萧十郎
浏览 899回答 4
4回答

子衿沉夜

import pymysqlcur = mysql.connect().cursor(pymysql.cursors.DictCursor)cur.execute(sql)row = cur.fetchall()print row[{u'symbol': u'AAPL'}, {u'symbol': u'SQ'}]

繁星淼淼

问题没有指定您的 SQL 适配器,但如果您将 SQLAlchemy 与 Flask 一起使用,以下是如何查询数据库并以所需格式输出结果的示例:from flask import Flaskfrom models import dbimport jsonapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'your_database_connection_string'db.init_app(app)result = db.session.execute("SELECT * FROM categories WHERE id = :id", {"id":999})# If no rows were returned (e.g., an UPDATE or DELETE), return an empty listif result.returns_rows == False:    response = []# Convert the response to a plain list of dictselse:    response = [dict(row.items()) for row in result]# Output the query result as JSONprint(json.dumps(response))

犯罪嫌疑人X

我找到了使用 sql-alchemy 更好的方法的解决方案。如果想要按照问题陈述的解决方案,那么这里是一个解决方案import json def conv_func(list_data):    dic ={ "CATEGORY_ID":list_data[0],          "CATEGORY_NAME":list_data[1],          "DESCRIPTION":list_data[2]          }    return dicdata = '''[[  1,   "FURNITURE",   "INDOOR FURNITURE" ],  [  2,   "AUTOMOBILES",   "CARS, BIKES" ],  [  3,   "LAPTOP & ACCESSORIES",   "LAPTOP, MOUSE, KEY BOARD, PENDRIVE" ]]'''data = json.loads(data)new_data=[]for i in data:        new_data.append(conv_func(i))print(new_data)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python