为了账号安全,请及时绑定邮箱和手机立即绑定

在python Flask中将结果转换为json

在python Flask中将结果转换为json

萧十郎 2021-09-25 16:13:32
我正在 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" }]
查看完整描述

4 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

import pymysql

cur = mysql.connect().cursor(pymysql.cursors.DictCursor)

cur.execute(sql)

row = cur.fetchall()

print row


[{u'symbol': u'AAPL'}, {u'symbol': u'SQ'}]


查看完整回答
反对 回复 2021-09-25
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

问题没有指定您的 SQL 适配器,但如果您将 SQLAlchemy 与 Flask 一起使用,以下是如何查询数据库并以所需格式输出结果的示例:


from flask import Flask

from models import db

import json


app = 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 list

if result.returns_rows == False:

    response = []


# Convert the response to a plain list of dicts

else:

    response = [dict(row.items()) for row in result]


# Output the query result as JSON

print(json.dumps(response))


查看完整回答
反对 回复 2021-09-25
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我找到了使用 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 dic



data = '''[[

  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)


查看完整回答
反对 回复 2021-09-25
  • 4 回答
  • 0 关注
  • 898 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信