将sql表数据转换为json

2024-04-27 12:01:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我在服务器端使用flask,我有以下api:

class DateTimeEncoder(json.JSONEncoder):
    def default(self, o):
        if isinstance(o, datetime):
            return o.isoformat()

        return json.JSONEncoder.default(self, o)


@app.route('/getTransaction', methods=['GET','POST'])
def getTransaction():

uid = request.form["uid"]
db = my.connect("somehost.com","someuser","somepwd","someDB")
cur = db.cursor()

cur.execute("select * from Transactions where uid='%s'" %(uid))

json_string = json.dumps(cur.fetchall(),cls=DateTimeEncoder)

db.close()
return json.dumps(json_string)

在这之后,我得到的答复是:

http://sairav.pythonanywhere.com/getTransaction

有没有一种方法可以将这些数据转换成json格式并带有键(例如名称、描述、金额、类型、id、时间,您可以在响应中看到值)

json数组中的必需格式:

^{pr2}$

Tags: selfcomjsondefaultdbuidstringreturn
1条回答
网友
1楼 · 发布于 2024-04-27 12:01:07

在这里找到了真正有用的answer它完全解决了我的目的,它将我的表列名设置为json数组中json对象的键。 感谢algrebe的链接。在

我运行的带有必需json输出的代码是:

  @app.route('/getTransaction', methods=['GET','POST'])
  def getTransaction():

  uid = request.form["uid"]
  db = my.connect("somehost.com","someuser","somepwd","someDB")
  cur = db.cursor()

  cur.execute("select * from Transactions where uid='%s'" %(uid))


  **columns = cur.description
  result = [{columns[index][0]:column for index, column in enumerate(value)}   for value in cur.fetchall()]**


  db.close()

  **return json.dumps(result,cls=DateTimeEncoder)**

相关问题 更多 >