gpt4 book ai didi

python - json序列化输出重音字符不正确,python/django

转载 作者:行者123 更新时间:2023-11-30 23:08:04 24 4
gpt4 key购买 nike

我有一个 Django 应用程序,使用 tasypie 序列化一些数据。

有一个名字

"Glòria" 

(带重音“o”)在数据库中,但未正确序列化。在 tasypie 生成的 json 中,它显示为

"Glòria" 

序列化器类如下所示:

import json as simplejson


class PrettyJSONSerializer(Serializer):
json_indent = 2
def to_json(self, data, options=None):
options = options or {}
data = self.to_simple(data, options)
return simplejson.dumps(data, cls=json.DjangoJSONEncoder,
sort_keys=True, ensure_ascii=False, indent=self.json_indent)

将 simplejson.dumps 上的属性更改为

ensure_ascii=True 

返回以下内容:

"Gl\u00f2ria"

最佳答案

我还不能发表评论,所以我发布了回复。 Python 2 的编码并不是很有趣。

Glí²ria 是数据的正确 utf-8 编码表示形式(以字节为单位)。 Gl\u00f2ria 是 unicode 字符串的 Python 2 内部表示。 json.dumps 返回一个 python unicode 字符串。您可能想要做的是将 json.dumps 的输出编码为 utf8。

import json
data = u'Gl\xf2ria'
encoded_data = json.dumps(s, ensure_ascii=False).encode("utf8")
print(encoded_data)

打印 Gloria。

编辑:只是为了确定

Glária = Gl\xc3\xb2ria。使用 print 语句打印两者都应正确显示为 Glòria。

关于python - json序列化输出重音字符不正确,python/django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31938333/

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