[英]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.