【问题标题】:filter out json with json.loads(r.text)用 json.loads(r.text) 过滤掉 json
【发布时间】:2020-11-28 00:48:44
【问题描述】:

我正在尝试从 python/flask webApp 中的 XYZ 提供程序获取 rest api 我将此用作示例/指南 https://help.parsehub.com/hc/en-us/articles/217751808-API-Tutorial-How-to-get-run-data-using-Python-Flask 我没有 api 密钥,但有身份验证令牌,所以这是我正在使用的代码并返回 alldata

`from flask import Flask, render_template
import requests
import json

app = Flask(__name__)

@app.route('/')
def homepage():
  headers = {
  "Accept": "application/json",
  "Authorization": "Bearer MYKEY"
  }
  r = requests.get(
      'https://st1.example.com/restapi/domains/', headers=headers)
  return  json.loads(r.text)

if __name__ == '__main__':
  app.run(host='0.0.0.0', debug=True)

`

这会像这样返回所有 json 数据 json image

我喜欢过滤是只显示“域”和“目的地”的一部分,但是当添加这样的代码时

  r = requests.get(
      'https://st1.example.com/restapi/domains/', headers=headers)
  return  json.loads(r.text)['destination']

我不断收到“关键错误“目的地””或我输入的任何内容

error

【问题讨论】:

    标签: python python-3.x api flask flask-restful


    【解决方案1】:

    您的 json 返回数据,该数据是一个包含 destination 的数组。假设您想要第一个目的地,请尝试

      return  json.loads(r.text)['data'][0]['destination']
    

    或者可以写成:

    results = json.loads(r.text)
    return results['data'][0]['destination']
    

    【讨论】:

      【解决方案2】:

      似乎'destination' 存储在 JSON 响应中的 'data' 下。此外,您应该只调用r.json() 而不是json.loads(r.text)。您还应该jsnoify您的回复。

      from flask import Flask, render_template, jsonify
      import requests
      
      app = Flask(__name__)
      
      @app.route('/')
      def homepage():
          headers = {
          "Accept": "application/json",
          "Authorization": "Bearer MYKEY"
          }
          r = requests.get(
              'https://st1.example.com/restapi/domains/', headers=headers
          )
          destination = r.json()['data'][0]['destination']
          return  jsonify(destination), 200
      
      if __name__ == '__main__':
          app.run(host='0.0.0.0', debug=True)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-30
        • 1970-01-01
        • 2020-03-09
        • 1970-01-01
        • 2022-11-15
        • 2015-01-15
        • 1970-01-01
        • 2014-05-07
        相关资源
        最近更新 更多