首页 > 解决方案 > 将sql结果转换为可序列化的JSON

问题描述

我用蟒蛇。我创建了一个云函数来返回与 PostgreSQL 连接的搜索查询的结果。我发誓 sql 已连接。当谈到从 sql 重新调整 fetch 结果时,它说行对象不是可序列化的 JSON 。我应该如何将此行结果转换为 json ?

这是我的代码

def freebie(request):


  engine = create_engine('postgresql://ABC' , echo=True)

  conn = engine.connect()

  x_sql = sa.text('''
            SELECT user_label from "database"."user"
            WHERE "_id" = :userId
        ''')

  record = conn.execute(x_sql, userId = '82f3f82f-5bae-45d3-971f-b4af3a06182f', 
            current_time = datetime.now(), ).fetchall()

  user_labbel = record[0][0]

  campaign_sql = sa.text('''
            SELECT * from "database"."user_fav_books"
            WHERE "user_label" = :campaign_id
        ''')

  result = conn.execute(campaign_sql, campaign_id = user_labbel, 
            current_time = datetime.now(), ).fetchall()

  if len(result) == 0 :
    return "No result"
  else:
    return json.dump(result, indent=4 , check_circular=True)

标签: pythonpostgresqlsqlalchemy

解决方案


尝试这个,

import json

并返回如下图,

return json.dumps(results, indent=4)

推荐阅读