Flask-RESTX - арабский текст в теле ответа
Я запускаю api отдыха с swagger, flask-restx
Однако моя проблема в том, что в пользовательском интерфейсе swagger (http://127.0.0.1:5000/?) При тестировании конечной точки арабский текст в теле ответа возвращается в виде исключенных символов
\\u0645\\u0635\\u0646\\u0648\\u0639 \\u0645\
Та же проблема при использовании почтальона
Проблема не возникает при использовании пакета запроса возвышенного текста или при простом вводе URL-адреса в браузере (у меня есть расширение jsonify)
Вот сокращенная версия моего кода
@app.route('/products')
def products():
# logic with database
return JSONEncoder().encode(products)
name_space = api.namespace('product', description='Product API')
@name_space.route("/")
class ProductClass(Resource):
def get(self):
return make_response(products())
Когда я вызываю конечную точку
products
работает нормально, но когда я звоню
product
Это не.
1 ответ
Определите в Python следующую функцию:
def inverse_repr(a_string):
a_string = repr(a_string)
a_string = a_string.replace('\\\\','\\')
# encode/decode stuff
return a_string.strip("'").encode().decode("unicode-escape")
Пример использования:
print( inverse_repr('\\u0645\\u0635\\u0646\\u0648\\u0639 \\u0645') )
print( inverse_repr('\\x43\\x69\\x74\\x72\\x6f\\xeb\\x6e') )
print( inverse_repr('d\\xE9j\\xE0 vu') )
print( inverse_repr('\\U0001F5B6 Printer Icon') )
Результат:
مصنوع م
Citroën
déjà vu
Printer Icon