gpt4 book ai didi

python-3.x - Flask jsonify 是否支持 UTF-8?

转载 作者:行者123 更新时间:2023-12-03 09:31:21 24 4
gpt4 key购买 nike

我一直在使用 flask 和 jsonify 进行实验。有用。但不支持 utf-8 字符(土耳其字符)。我正在使用字典。

if api_key in key_list:
quotes = {
'ataturk':
['Hayatta En Hakiki Mursit Ilimdir Fendir',
'Birgün benim naciz bedenim'],
'mahatma gandhi':
['Happiness is when what you think, what you'
'say,and what you do are in harmony.']
}

get_quote = quotes[karakter(author.lower(), harfler)]

quote = {
'quotes': random.choice(get_quote),
}

return jsonify(quote)

我试过编码,但它不起作用。我在 Debug模式下收到此错误:

AttributeError: 'dict' object has no attribute 'encode'



我怎么解决这个问题?

最佳答案

你是对的,jsonify 不支持 UTF-8 字符。但是,它确实很好地支持 Unicode 字符。

考虑这两个程序:

# http server
from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/')
def root():
return jsonify({'quote':'Birgün'})

if __name__=='__main__':
app.run(debug=True)
# http client
import requests
import unicodedata
r = requests.get('http://localhost:5000/')
j = r.json()
u = j['quote'][4]
print("%s: %d %x %s\n"%(u, len(u), ord(u), unicodedata.name(u)))

如您所见,http 客户端获取 JSON,对其进行解码,并检查“Birgün”中的“ü”。

结果应该清楚地表明 ü 在端到端的旅程中幸存下来,从 Python3 字符串,到 JSON 和 HTTP,再回到 Python3 字符串。
ü: 1 fc LATIN SMALL LETTER U WITH DIAERESIS

编辑:说了这么多,还有一个 configuration option这将强制 jsonify()表现得如你所愿:
app.config['JSON_AS_ASCII'] = False

关于python-3.x - Flask jsonify 是否支持 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36378441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com