0

我正在用 swagger,flask-restx 运行一个休息 api

但是,我的问题是,在招摇用户界面(http://127.0.0.1:5000/?)中,当测试端点时,响应正文中的阿拉伯文本作为扩展字符返回\\u0645\\u0635\\u0646\\u0648\\u0639 \\u0645\ 使用邮递员时同样的问题

使用 sublime text 请求包或者只是在浏览器中输入 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它时却不行。

4

1 回答 1

0

在 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
于 2020-09-30T18:02:49.943 回答