Python 类型错误:';非类型';对象在烧瓶中不可下标
我正在尝试将一些JSON数据发布到设备上运行的API。但是,当我试图发布来自postman的数据时,我能够成功地发送数据,但在端点处得到错误TypeError:“NoneType”对象不可订阅 基本上,我希望将数据发布到API并在端点处显示数据 这是我从邮递员那里发送的JSON数据Python 类型错误:';非类型';对象在烧瓶中不可下标,python,flask,get,postman,http-post,Python,Flask,Get,Postman,Http Post,我正在尝试将一些JSON数据发布到设备上运行的API。但是,当我试图发布来自postman的数据时,我能够成功地发送数据,但在端点处得到错误TypeError:“NoneType”对象不可订阅 基本上,我希望将数据发布到API并在端点处显示数据 这是我从邮递员那里发送的JSON数据 { "platform_details" : "Windows10", "architectural_details" : "ab
{
"platform_details" : "Windows10",
"architectural_details" : "abc",
"hostname" : "xyz"
}
我收到另一个错误,说明JSONDecodeError:期望值:第1行第1列(字符0)
另外,我对flask和python还不熟悉。用这段代码再次测试它。它打印出JSON请求:
import requests
from flask import Flask, request, jsonify, make_response
from flask_restful import Resource, Api
import json, csv, os
app = Flask(__name__)
app.config['DEBUG'] = True
@app.route('/osinfo', methods=['GET', 'POST'])
def os_data():
req_data = request.json
print(req_data)
platform_details = req_data['platform_details']
architectural_details = req_data['architectural_details']
hostname = req_data['hostname']
return jsonify(req_data)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
然后,使用此选项发送请求:
resp = requests.post('http://localhost:5000/osinfo', json={'platform_details': 'platform_details', 'architectural_details': 'architectural_details', 'hostname': 'hostname'})
json_response = resp.json()
print(response.json())
这将print()
服务器的JSON响应
这是因为您的输出是
html
并且不是有效的json
文本。使用此return-jsonify({'response':'Success!','platform\u-details':平台\u-details,'architecture\u-details':体系结构\u-details,'hostname')编辑返回html输出。
。在结束点仍然得到相同的错误
import requests
from flask import Flask, request, jsonify, make_response
from flask_restful import Resource, Api
import json, csv, os
app = Flask(__name__)
app.config['DEBUG'] = True
@app.route('/osinfo', methods=['GET', 'POST'])
def os_data():
req_data = request.json
print(req_data)
platform_details = req_data['platform_details']
architectural_details = req_data['architectural_details']
hostname = req_data['hostname']
return jsonify(req_data)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
resp = requests.post('http://localhost:5000/osinfo', json={'platform_details': 'platform_details', 'architectural_details': 'architectural_details', 'hostname': 'hostname'})
json_response = resp.json()
print(response.json())