簡體   English   中英

將 output 轉換為 json 格式

[英]Transform output in json format

下面的代碼以非 json 格式返回數據。 我嘗試在 json 中轉換 output 但沒有運氣。 我在這里想念什么?

import requests
import json
from flask import Flask, jsonify, request, render_template
import os

app = Flask(__name__)

headers = {
    "Content-type": "application/json",
}

def map_status(data):
  if(data['install_status']=='1'):
    data['install_status']='Installed'
  elif(data['install_status']=='3'):
        data['install_status']='Maintenance'
  return data

@app.route('/outages')
def Outages():

  url = "https://my-api.local.com/data"
  response = requests.get(url)

  result_data = json.loads(response.text)
  result_data['result'] = map(map_status, result_data['result'])
  
  return str(list(result_data['result']))
  

這里是當前的output,好像是HTML或者文本格式(我要的是json格式)

[{'install_status': 'Installed', 'name': 'server1'}, {'install_status': 'Installed', 'name': 'server2'}]

我正在尋找的格式是這樣的:

{"result":[{'install_status': 'Installed', 'name': 'server1'}, {'install_status': 'Installed', 'name': 'server2'}]}

您當前的響應仍然是 json,只是沒有第一個"result" object。 你應該能夠得到預期的響應(見最后一行),但你真的需要這種格式嗎?:

@app.route('/outages')
def Outages():

    url = "https://my-api.local.com/data"
    response = requests.get(url)

    result_data = json.loads(response.text)
    result_data['result'] = dict(map(map_status, result_data['result']))

    return result_data # just result

下面的代碼工作。 謝謝你們為我指出正確的方向!

import requests
import json
from flask import Flask, jsonify, request, render_template
import os

app = Flask(__name__)

headers = {
    "Content-type": "application/json",
}

def map_status(data):
  if(data['install_status']=='1'):
    data['install_status']='Installed'
  elif(data['install_status']=='3'):
        data['install_status']='Maintenance'
  return data

@app.route('/outages')
def Outages():

  url = "https://my-api.local.com/data"
  response = requests.get(url)

  result_data = json.loads(response.text)
  result_data['result'] = list(map(map_status, result_data['result']))

  return result_data # just result

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM