使用请求对象 Flask 获取 json 响应

2024-03-28

网络服务

@app.route('/get-details')
def getDetails():    
   cur.execute("select * from employee")
   rows = cur.fetchall()
   columns = [desc[0] for desc in cur.description]
   result = []
   for row in rows:
           row = dict(zip(columns, row))
           #json_row=json.dumps(row)
           result.append(row)

   json_response=json.dumps(result)
   response=Response(json_response,content_type='application/json; charset=utf-8')
   response.headers.add('content-length',len(json_response))
   response.status_code=200
   return response

网络服务器

@app.route('/get-details')
def getDetails():
      r=requests.get('http://localhost:8084/get-details')
      return r.json() #error in this line, however r.text is rendering the result but in html

Error

Error on request:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 177, in run_wsgi
    execute(self.server.app)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/serving.py", line 165, in execute
    application_iter = app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1478, in full_dispatch_request
    response = self.make_response(rv)
  File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1577, in make_response
    rv = self.response_class.force_type(rv, request.environ)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 827, in force_type
    response = BaseResponse(*_run_wsgi_app(response, environ))
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 57, in _run_wsgi_app
    return _run_wsgi_app(*args)
  File "/usr/local/lib/python2.7/dist-packages/werkzeug/test.py", line 855, in run_wsgi_app
    app_iter = app(environ, start_response)
TypeError: 'list' object is not callable

如何处理从webservice返回的响应并将其视为json?

r.text 返回 ["{\"username\" : \"abhi\", \"pass\" : 2087}"] 这是一个 String 对象 我不知道 r.json 将如何格式化结果,但我想要类似的东西:

[{"username" : "abhi", "pass" : 2087}] 我可以使用this https://stackoverflow.com/questions/25391657/replace-text-from-list-of-dictionary-python/25391700#25391700但我需要一个列表而不是字符串来执行此操作。


首先,使用.json()代替.json.

然后,我认为你对数据进行了双重 json 编码。

尝试这样做:

for row in rows:
       row = dict(zip(columns, row))
       # REMOVED
       result.append(row)

json_response=json.dumps(result)
response=Response(json_response,content_type='application/json; charset=utf-8')
response.headers.add('content-length',len(json_response))
response.status_code=200
return response

获取详细信息

from flask import jsonify

@app.route('/get-details')
def getDetails():
      r=requests.get('http://localhost:8084/get-details')
      json_response=json.dumps(r.json())
      response=Response(json_response,content_type='application/json; charset=utf-8')
      response.headers.add('content-length',len(json_response))
      response.status_code=200
      return response
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用请求对象 Flask 获取 json 响应 的相关文章

随机推荐

  • 查找 lambda 表达式中的自由变量

    有谁知道如何找出 lambda 表达式中的自由变量 自由变量是不属于 lambda 参数的变量 我当前的方法 这对我毫无帮助 是简单地使用 car 和 cdr 来遍历表达式 我的主要问题是确定一个值是否是一个变量或者它是否是方案原语之一 有
  • 世博会:无效的 sdkVersion“32.0.0”

    在尝试使用 expo 配置根据安装指南运行反应本机应用程序时 我发现了此错误 错误 sdkVersion 无效 有效选项为 10 0 0 11 0 0 12 0 0 13 0 0 14 0 0 15 0 0 16 0 0 17 0 0 18
  • BGTaskScheduler.shared.register 未调用

    我正在使用后台刷新来安排本地通知并更新我的小部件 问题是没有调用任务注册方法 func application application UIApplication didFinishLaunchingWithOptions launchOp
  • p4v 不显示签出文件的完整列表

    如果我在 p4v 中签出 4000 个文件 它不会显示默认更改列表中的完整文件列表 它只是说已签出 4000 个文件 有什么方法可以查看 4000 个文件的完整列表吗 通过 编辑 gt 首选项 菜单打开首选项对话框 单击 服务器数据 您将看
  • Flash上​​传图片调整客户端大小

    有谁知道如何使用 Flash 调整客户端图像大小 例子 客户选择一张 1200x800 的图像 在上传之前 Flash 会将其变成一半或其他什么 有什么想法吗 Plupload 是开源的 拥有良好的文档并支持多个平台 包括 Gears 和
  • 尝试连接到 PubNub 服务时获取 PNTimeoutCategory

    得到PNTimeoutCategory尝试连接到 PubNub 服务时 以下是PNStatus我们收到的类别 PNErrorData information null throwable com pubnub api PubNubExcep
  • 是否有一个直接的解决方案可以在命中 dropWhile 谓词之前*接收元素?

    给定一个条件 我想搜索元素列表并返回满足条件的第一个元素和前一个元素 在 C C 中这很简单 int i 0 for i if arr i 0 break 当我们得到满足条件的索引后 获取前一个元素就很容易了 通过 arr i 1 在哈斯克
  • Ubuntu 14.04 桌面上的 Jenkins.log 位置

    Setup 我目前正在 Ubuntu 14 04 桌面计算机上运行 Jenkins 实例 我已经通过 WAR 发行版安装了 Jenkins 并在主机上将 Jenkins 作为服务运行 Issue 我正在尝试访问描述的 jenkins log
  • 将匿名类型作为方法参数传递

    在我的插件架构中 我当前将插件名称 字符串 方法名称 字符串 和参数 对象数组 传递给我的插件服务 以执行指定的方法并返回结果 T 类型 插件服务的执行方法如下所示 public TResult Execute
  • Pandas 中最快的计算方法?

    给定这两个数据框 df1 Name Start End 0 A 10 20 1 B 20 30 2 C 30 40 df2 0 1 0 5 10 1 15 20 2 25 30 df2没有列名 但您可以假设列 0 的偏移量为df1 Star
  • XML 到 XML - 创建唯一 ID 并在同一文档中引用它们

    我有一个源 xml 其中包含现场地址 需要转换为一个 xml 将所有地址保存到单个元素中并引用每个地址 我正在使用 Saxon 9 1 处理器和样式表版本 1 0 感谢您的帮助 源代码
  • 在 IIS 上 Dockerize ASP Classic

    微软一直在投资在 Windows 上运行 docker适用于 Windows 的 Docker 桌面 是否可以通过 Docker 在 IIS 上运行旧版 ASP Classic 应用程序 如何 https hub docker com r
  • 等待主线程直到 ExecutorService 的所有线程池任务完成?

    我需要主线程等待所有线程池任务完成 怎么做 例如 我有程序 public static void main String args ExecutorService executor Executors newFixedThreadPool
  • Android JNI:调用 System.loadLibrary() 会导致 SEGV [重复]

    这个问题在这里已经有答案了 可能的重复 应用程序可以在 Eclipse 中调试 运行 但 APK 在解析包含自定义视图的 XML 布局时给出 classNotFoundException https stackoverflow com qu
  • 如何打包 Visual Studio aws 无服务器项目?

    我试图弄清楚是否有一种方法可以以自动化的方式打包 aws 无服务器项目 以便我们可以拆分构建和发布管道 使用dotnet lambda命令行工具 我可以看到有一个dotnet lambda package命令将 lambda 打包为 zip
  • 在 php 中集成 payfort api 时遇到问题

    我正在关注 https docs start payfort com references api https docs start payfort com references api 实施 Payfort 付款 Api 的文档 但我遇到
  • Kendo 自动完成显示两个建议列表

    我的 Kendo 自动完成控件成功检索 Json 列表 不幸的是 它调用了 MVC 控制器方法两次并创建了两个建议列表 重复列表直接显示在第一个列表后面 当从第一个建议列表中选择一个值时 该列表会消失 但重复列表仍然可见 我正在使用自动完成
  • Angular“=”范围不适用于驼峰命名法

    我是指令的范围属性 我使用时效果很好show作为属性名称 span span
  • 如何在 pip 安装期间编译 C++ 依赖项?

    我想让我的 python 代码可以使用 pip 但是 我的代码依赖于另一个不可 pip 的库 所以 当用户调用时我需要以某种方式编译源代码pip install 我怎样才能做到这一点 我无法通过简单的谷歌搜索找到好的参考资料 我建议看看 l
  • 使用请求对象 Flask 获取 json 响应

    网络服务 app route get details def getDetails cur execute select from employee rows cur fetchall columns desc 0 for desc in