#python #flask
Вопрос:
У меня есть написанные коды (приложение FLASK), которое получает текстовый файл и проверяет, содержит ли он URL или JSON. Если это URL-адрес, он получает его и показывает как JSON пользователю, иначе, если это JSON, он показывает его только таким, какой он есть для пользователя. Я хотел бы знать, являются ли мои коды правильным представлением этих вещей.Текстовый файл может быть представлен в следующих формах (JSON или URL):
text.txt > ‘{«имя»:»Джон», «возраст»:30, «автомобиль»:ноль}’
text.txt > http://example.com/contents/example.json
from flask import Flask, jsonify, abort, make_response
from flask_restful import Resource, Api
import requests, json
import urllib.request as request
app = Flask(__name__)
api = Api(app)
@app.route('path', methods=["POST"])
@app.error
class test(Resource):
def do_test(self):
with open("test.txt", "r") as md:
text = md.read()
for i in text.readlines():
URL = requests.get(i)
if URL.ok:
data = json.loads(URL.read())
return jsonify(data)
else:
abort(make_response(jsonify(404, message = "No URL found"),400))
elif text.read(1) in '{[':
data = json.load(text)
return jsonify(data)
api.add_resource(test, 'path')
if __name__ == '__main__':
app.run(debug=True)
Комментарии:
1. Что это
file
? Что этоmake_response
? Что этоjsonify
? Каково содержание файла в том или ином случае?2. Я только что отредактировал коды. файл должен быть заменен текстом. Я также импортировал make_response
3. … Каково содержание файла в том или ином случае?
4. На самом деле, содержание файла пока неизвестно, так как оно будет предоставлено мне позже. Я просто хочу создать логику, которая проверяет, является ли текстовый файл URL-адресом или JSON. Если это JSON, он напрямую показывает пользователю, если нет, и это URL-адрес, получает его, извлекает его данные и показывает его как json пользователю.
5. Я знаю, что ты пытаешься сделать. Можете ли вы предоставить два файла примеров для обоих возможных результатов?
Ответ №1:
Вы можете использовать блок «попробовать/кроме». Что-то вроде
try:
data = json.load(text)
except JSONDecodeError:
url = text
Вам нужно будет протестировать его и добавить соответствующие исключения, JSONDecodeError-это всего лишь пример, но вы поняли суть.